我对Internet Explorer 9的缓存问题十分苦恼。
我从一个Perl脚本中根据查询字符串的值设置了一系列cookies。这些cookies保存页面上各种元素的信息,例如横幅和颜色。
我的问题是,在IE9中它总是使用缓存而不是新值。事件的顺序如下:
- 访问www.example.com/?color=blue
- Perl脚本设置Cookie,我被重定向回www.example.com
- 颜色是蓝色的,一切都符合预期。
- 访问www.example.com/?color=red
- 设置Cookies,重定向,将颜色设置为红色,一切正常
- 重新访问 www.example.com/?color=blue
- Perl脚本运行,Cookies被重新设置(我已经确认),但是!IE9从缓存中检索所有资源,因此在重定向时我的所有颜色都保持为红色。
所以,每次我访问一个新的URL它就会获取新资源,但是每次我访问以前访问过的URL它都会从缓存中检索资源。
以下meta标签位于example.com的<head>中,我认为它们应该可以防止使用缓存:
<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会忽略我的头文件,如何强制它每次都检查服务器?