Я отрываю свои волосы от кеширования через Internet Explorer 9.
Я установил ряд файлов cookie из perl script в зависимости от значения строки запроса. Эти файлы cookie содержат информацию о различных вещах на странице, например, баннеры и цвета.
Проблема, с которой я столкнулась, заключается в том, что в IE9 всегда будет ВСЕГДА использовать кеш вместо использования новых значений. Последовательность событий выполняется следующим образом:
- Посетите сайт www.example.com/?color=blue
- Perl script устанавливает файлы cookie, я перенаправлен на www.example.com
- Цвета синие, все как ожидается.
- Посетите сайт www.example.com/?color=red
- Печенье установлено, перенаправлено, цвета установлены на красный, все нормально
- Перейдите на сайт www.example.com/?color=blue
- Perl script работает, файлы cookie переустанавливаются (я это подтвердил), но! IE9 возвращает все ресурсы из кеша, поэтому перенаправление всех моих цветов остается красным.
Итак, каждый раз, когда я посещаю новый URL-адрес, он получает ресурсы свежими, но каждый раз, когда я посещаю ранее посещаемый URL-адрес, он извлекает их из кеша.
Следующие метатеги находятся в <head> of 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 игнорирует мои заголовки и как я могу заставить его проверять сервер каждый раз?