我被9的缓存弄得焦头烂额。
我根据查询字符串值从perl脚本中设置了一系列cookie。这些cookie在页面上保存有关各种信息,如横幅和颜色。
我遇到的问题是,在IE9中,它总是使用缓存,而不是使用新的值。事件的顺序如下所示:
因此,每次我访问一个新URL时,它都会重新获得资源,但每次我访问以前访问过的URL时,它都会从缓存中检索它们。
以下元标记位于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要忽略我的头,我如何强迫它每次检查服务器?
发布于 2011-12-14 18:02:16
那些不是头。它们是<meta>元素,它们是headers极其糟糕的替代品。我建议您阅读马克·诺丁汉的缓存教程,详细介绍这方面的内容,以及哪些缓存指令适合使用。
另外,忽略任何告诉您将缓存设置为private的人。这允许在浏览器中缓存-它说“这是可以缓存的,只要你不把它转发到另一个客户端”。
发布于 2011-12-14 17:57:14
尝试将以下内容作为Headers (而不是meta标记)发送:
Cache-Control: private, must-revalidate, max-age=0
Expires: Thu, 01 Jan 1970 00:00:00发布于 2013-03-06 09:51:08
我不知道这对任何人是否有用,但我在我的电影网站(crosstastemovies.com)上也遇到了类似的问题。每当我点击“获取更多的电影”按钮(它会检索一批随机的电影来评分),IE9就会返回完全相同的页面,忽略服务器的响应.:P
为了阻止IE9这样做,我不得不调用一个随机变量。因此,我没有调用"index.php?location=rate_movies“,而是将其改为”index.php?location=rate_movies“
现在一切都好了。
干杯
https://stackoverflow.com/questions/8239599
复制相似问题