Убедитесь, что ваши ответы не сообщают браузеру, что срок действия контента истекает в будущем. Элемент управления this имеет два заголовка HTTP.
- Истекает
- Cache-Control - есть много возможных значений для этого заголовка, но тот, который контролирует срок действия, является max-age = foo.
Кроме того, IE может проходить повторную проверку. Это означает, что IE включает в запрос некоторую дополнительную информацию, которая сообщает веб-серверу, какую версию ресурса он имеет в своем кэше. Если кешированная версия браузера является текущей, ваш сервер может ответить 304 Not Modified
и НЕ включать содержимое в ответы. «Условия запроса GET» включают эту информацию о версиях. Возможно, ваш сервер дает 304 ответа, а это не должно быть.
Существует два набора заголовков, которые контролируют повторную проверку:
- Последнее изменение + If-Modified-Since
- ETag + If-None-Match
Last-Modified и ETag - это заголовки ответа, которые сообщают браузеру, какую версию ресурса он собирается получить. Если вы не хотите, чтобы браузеры проходили повторную проверку, не устанавливайте их. If-Modified-Since и If-None-Match - это соответствующие заголовки запросов, которые браузер использует для сообщения о версии устаревшего ресурса, который необходимо повторно проверить на сервере.
Существуют различные инструменты для просмотра заголовков HTTP, которые ваш сервер отправляет обратно в браузер. Одним из них является расширение Firefox Live HTTP Headers . Еще один инструмент, который Стив Саундерс рекомендует - это IBM Page Detailer . Я сам не пробовал, но это не зависит от используемого вами браузера.