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