Включение таблиц стилей / изображений, сжатых с помощью gzip base64, в javascript?

Я знаю, что вы можете включать css и изображения, среди других типов файлов, которые были сохранены в форме base64 в файле javascript. Тем не менее, они прилично огромны ... и в сжатом виде они сильно сжимаются, даже с ~ 33% накладными расходами от кодирования base64.

Без сжатия в формате gzip изображения представляют собой данные: изображение / gif; base64, данные: изображение / jpeg, данные: изображение / png, а css - это данные: текст / css; base64.Какой тип MIME я могу / должен использовать для включения css или URI данных изображения, сжатых с помощью gzip? (Или, если gzip + base64 не работает, могу ли я сделать какое-нибудь другое сжатие, чтобы уменьшить размер строки, сохранив при этом данные, хранящиеся в javascript?)

.. edit .. Я думаю, что вопрос неправильно понимают. Я не спрашиваю , следует ли включать сжатые gzip строки base64 в javascript. Да, я знаю, что в большинстве случаев лучше всего архивировать javascript и другие файлы на стороне сервера. Но это не применимо к пользовательскому скрипту; пользовательский скрипт не имеет сервера и состоит только из одного файла. Firefox допускает директиву @require, а Opera и Chrome - нет, и проблемы безопасности локальных файлов вступают в игру при загрузке любых локальных файлов. Таким образом, все, что требуется сценарию, должно быть либо: 1) в сети (медленно), либо 2) встроено в пользовательский сценарий (большое).

В этом вопросе предполагается, что большой предпочтительнее медленного, но этот большой не должен означать, что мы полностью игнорируем, насколько большой; если он может быть меньше, это улучшение.

Итак, если предположить, что строка base64 встроена в javascript, вопрос в том, как превратить ее во что-то значимое.

Либо:

1) atob () может конвертировать необработанный файл gzip в кодировке base64 в необработанный файл gzip внутри javascript. (Атоб не обязательно знать медиатип). Тогда возникает вопрос, как распаковать этот необработанный сжатый с помощью gzip файл css или изображения, чтобы полученный результат можно было передать в документ.

или 2) при правильном типе медиафайлов браузеры, по крайней мере теоретически (согласно RFC по данным), должны иметь возможность загружать любой файл непосредственно из данных."" достаточно для загрузки таблицы стилей css без сжатия. Вопрос здесь будет в том, какая комбинация атрибута типа ссылки и медиатипа datauri должна работать (и для каких браузеров она будет работать)? Предпочтительно для пользовательского скрипта это была бы комбинация, которая работает в Opera, FF и Chrome.

6
задан BrianFreud 28 January 2012 в 22:10
поделиться