Я рву на себе волосы из-за кэширования Internet Explorer 9.
Я установил серию файлов cookie из сценария Perl в зависимости от значения строки запроса. Эти файлы cookie содержат информацию о различных вещах на странице, таких как баннеры и цвета.
Проблема, с которой я сталкиваюсь, заключается в том, что в IE9 он всегда, ВСЕГДА будет использовать кеш вместо использования новых значений. Последовательность событий выглядит так:
- Посетите www.example.com/?color=blue
- Скрипт Perl устанавливает файлы cookie, я перенаправляюсь обратно на www.example.com
- Цвета синие, все как положено.
- Посетите www.example.com/?color=red
- Куки установлены, перенаправлены, цвета установлены на красный, все нормально
- Повторно посетите www.example.com/?color=blue
- Perl Script запускается, куки переустанавливаются (я это подтвердил), но! IE9 извлекает все ресурсы из кеша, поэтому при перенаправлении все мои цвета остаются красными.
Таким образом, каждый раз, когда я посещаю новый URL-адрес, ресурсы обновляются, но каждый раз, когда я посещаю ранее посещенный URL-адрес, он извлекает их из кеша.
Следующие метатеги находятся в ‹head› на сайте example.com, что, по моему мнению, предотвратит использование кеша:
<META HTTP-EQUIV="CACHE-CONTROL" CONTENT="NO-CACHE">
<META HTTP-EQUIV="PRAGMA" CONTENT="NO-CACHE">
<META HTTP-EQUIV="EXPIRES" CONTENT="0">
Для чего это стоит - я тоже пробовал <META HTTP-EQUIV="EXPIRES"
CONTENT="-1">
IE9, похоже, игнорирует ВСЕ эти директивы. Единственный раз, когда я добился успеха в этом браузере, - это использовать инструменты разработчика и убедиться, что для него вручную установлено значение «Всегда обновлять с сервера».
Почему IE игнорирует мои заголовки и как заставить его каждый раз проверять сервер?