Принудительное кэширование браузера через сеансы браузера - PullRequest
2 голосов
/ 22 июля 2011

Я помогаю поддерживать несколько сайтов на Wordpress, которые публикуют новости и справочную информацию.

Мы прилагаем все усилия, чтобы страницы на веб-сайтах загружались как можно быстрее.

Одна из вещей, которые мы сделали, - это реализация очень длительного времени "max-age" в заголовках http "control-cache" для большинства наших статических файлов, таких как изображения и файлы CSS.

Конкретная настройка управления кэшем, которую мы используем, - "public, max-age = 31536000". 31 536 000 секунд - это 365 дней.

Положительным моментом является то, что этот параметр фактически приводит к кэшированию статических файлов при просмотре посетителями различных страниц наших сайтов.

Но вот в чем дело. Этот параметр управления кешем мало что делает для нас во время сеансов браузера. Несмотря на то, что параметр должен сообщать браузеру «кэшировать этот файл на весь год», если посетитель нашего сайта закрывает свой браузер, а затем запускает его всего через пять минут и возвращается на наш сайт, браузер настаивает на перезагрузка всех статических файлов, даже если они все еще находятся в кеше.

Я тщательно проверил это в Firefox, просматривая заголовки с помощью живых HTTP-заголовков. Но я также могу качественно увидеть, что то же самое происходит в других браузерах.

По-видимому, браузеры настаивают на повторной загрузке всего контента для веб-сайта, если контент не был загружен один раз во время текущего сеанса браузера.

Итак ... Есть ли способ, которым мы можем "вежливо" предложить браузерам, чтобы они всегда загружали кэшированное содержимое из кэша, даже если браузер не был на нашем сайте во время текущего сеанса браузера?

1 Ответ

0 голосов
/ 22 июля 2011

Проверьте также заголовки ETag, Expires и Last-Modified.

Вам нужен заголовок Expires, и иногда ETag и Last-Modified могут победить кэширование.

...