Преимущества и недостатки использования кодированных изображений base64
Я собираюсь использовать кодированные изображения base64 для сайта, над которым я работаю, для оптимизации времени загрузки.
В любом случае, прежде чем я начну, мне было интересно: каковы преимущества и недостатки этого?
В настоящий момент я не вижу недостатков, но также заметил, что это не техника, используемая очень часто, и это заставляет меня задаться вопросом, не пропустил ли я что-то.
После googleing темы я ничего не нашел, поэтому решил спросить здесь.
Ответы
Ответ 1
Это полезно только для очень маленьких изображений. Закодированные файлы Base64 больше оригинала. Преимущество заключается в том, что вам не нужно открывать другое соединение и делать HTTP-запрос на сервер для изображения. Это преимущество теряется очень быстро, поэтому есть только преимущество для большого количества очень маленьких отдельных изображений.
Ответ 2
фактическая длина MIME-совместимых двоичных данных с кодировкой Base64 обычно около 137% от исходной длины данных, хотя для очень коротких сообщения, накладные расходы могут быть намного выше из-за накладных расходов заголовки. Очень грубо говоря, конечный размер двоичных данных с кодировкой Base64 равный 1,37 раза от исходного размера данных + 814 байтов (для заголовков).
Другими словами, размер декодированных данных может быть аппроксимирован этой формулой:
bytes = (string_length(encoded_string) - 814) / 1.37
Источник: http://en.wikipedia.org/wiki/Base64#MIME
Ответ 3
Некоторые из недостатков, как показано ниже, уже упоминаются в этом сообщении в Насколько быстрее использовать изображения inline/base64 для веб-сайта, чем просто ссылку на жесткий файл?
- Большинство форм кеширования избиты, что может сильно повредить, если изображение просматривается часто - скажем, логотип, который отображается на каждой странице, который обычно можно кэшировать браузером.
- Больше использования ЦП.
Ответ 4
также увеличивается время отклика HTML-страницы, поскольку изображения загружаются asyn в обычном сценарии. даже если изображения загружаются до конца, вы можете начать просмотр текста.
Еще одно преимущество CDN будет потеряно, если в CDN будет кэшироваться только носитель
это преимущество будет потеряно.