Будет ли мой браузер кэшировать значки из URL данных? - PullRequest
10 голосов
/ 18 мая 2011

Я хотел бы использовать следующий значок base64 и, возможно, некоторые изображения base64.

<link href="data:image/x-icon;base64,AAABAAEAEBAAAAAAAABoBQAAFgAAACgAAAAQAAAAIAAAAAEACAAAAAAAAAEAAAAAAAAAAAAAAAEAAAAAAA..AMAK3WxwAOWT0AK4RgAKHOvQA4hWUAP4lqAD2MagBQm3kATKSBAECcdP//AAD8/wAA+H8AAPA/AADwPwAA4B8AAMAPAACABwAAAgMAAI8BAADfgAAA/8AAAP/AAAD/4QAA//MAAP//AAA=" rel="icon" type="image/x-icon" />

Будут ли они кэшироваться моим браузером?

Ответы [ 2 ]

10 голосов
/ 18 мая 2011

Нет.URI данных не кэшируются отдельно от содержащих их документов (например, файлов CSS или HTML), поэтому данные загружаются каждый раз при повторной загрузке содержащихся документов.

Источник

4 голосов
/ 18 мая 2011

Кэширование favicon вашего сайта на самом деле рекомендуется в качестве рекомендации по повышению производительности для ускорения вашего сайта.

Например, Google не тратит впустуюдополнительные драгоценные байты для включения значка в исходный код его домашней страницы (либо с использованием <link /> или URI данных).

Вместо этого они подают свой значок с набором заголовков HTTPдалеко в будущее.Cache-Control: private, max-age=31536000 (31 536 000 секунд = 365 дней).

Если вы заинтересованы в контроле "свежести" иконки вашего сайта, вы можете использовать заголовки Cache-Control и HTTP - например, если вы планируетеизмените значок или не хотите, чтобы он кэшировался, вы можете настроить его соответствующим образом.

Пример использования Apache и mod_expires :

<IfModule mod_expires.c>
    # Add Expires Header
    # http://www.askapache.com/?p=152

    ExpiresActive On
    ExpiresByType image/x-icon "access plus 1 month"
</IfModule>

Этот модуль управляетнастройка HTTP-заголовка Expires и директивы max-age HTTP-заголовка Cache-Control в ответах сервера.Дата истечения срока может быть установлена ​​относительно времени последнего изменения исходного файла или времени доступа клиента.

...