Я знаю, что вы можете включать css и изображения среди других типов файлов, которые были сохранены в форме base64 в файле javascript. Тем не менее, они прилично огромны ... и gzipped, они сокращают LOT, даже с ~ 33% накладными расходами от base64-кодирования.Включая base64 gzipped stylesheets/images в javascript?
Не gzipped, изображения - данные: image/gif; base64, data: image/jpeg, data: image/png, и css - данные: text/css; base64. Какой тип mime можно/следует использовать, чтобы включить css или URI данных изображений, которые были gzipped? (Или если gzip + base64 не может работать, есть ли какое-либо другое сжатие, которое я могу сделать, чтобы уменьшить размер строки, сохраняя при этом данные, хранящиеся в javascript?)
..edit .. Я думаю, что вопрос недопонимается. Я не спрашиваю , если Я должен включить gzipped base64 строки в javascript. Да, я знаю, что в большинстве случаев лучше всего gzip javascript и другие файлы на сервере. Но это не применимо для usercript; usercript не имеет сервера и состоит только из одного файла. Firefox разрешает директиву @require, но Opera и Chrome этого не делают, и проблемы с локальной безопасностью файлов вступают в игру с загрузкой любых локальных файлов. Таким образом, все, что требуется скрипту, должно быть либо: 1) в Интернете (медленное), либо 2) встроенным в usercript (большой).
Теперь этот вопрос предполагает, что большой предпочтительнее замедлить, но этот большой не означает, что мы полностью игнорируем, насколько велики; если это может быть меньше, это улучшение.
Итак, предполагая, что строка base64 встроена в javascript, вопрос заключается в том, как сделать ее чем-то значимым.
Либо:
1) atob() может преобразовать сырой кодировке base64 GZIP к сырому Gzip в пределах JavaScript. (atob не нужно знать медиатип). Тогда возникает вопрос, как распаковать этот необработанный файл css или файл изображения, чтобы полученный результат мог быть подан в документ.
или 2) при условии надлежащего медиатипа, браузеры, по крайней мере теоретически (на RFID-данные), должны иметь возможность загружать любой файл непосредственно из datauri. «" достаточно для загрузки таблицы стилей без CSS. Вопрос здесь заключается в том, какой тип атрибута типа ссылки и комбинация медиатерапии данных будут работать (и в каких браузерах он будет работать)? Предпочтительно, для usercript это будет комбинация, которая работает в Opera, FF и Chrome.
кодировка base64 имеет накладные расходы 33%. –
Исправлено.:) Меня не волнует размер накладных расходов; для usercript размер не так важен для меня, как хранение всего одного дистрибутивного файла. Но было бы неплохо сохранить blobs base64 как можно меньше, поэтому это Q. – BrianFreud
Не хотите ли вы просто включить base64 в свой JS и gzip JS? – sdleihssirhc