看起来IE6会忽略通过http头发送的任何缓存失效方式,我已经尝试将Pragma设置为No Cache并将Cache Expiration设置为当前时间,但在IE6中,点击“返回”按钮总是会拉取页面的缓存版本。
是否有IE6确实会关注的特定HTTP头?
看起来IE6会忽略通过http头发送的任何缓存失效方式,我已经尝试将Pragma设置为No Cache并将Cache Expiration设置为当前时间,但在IE6中,点击“返回”按钮总是会拉取页面的缓存版本。
是否有IE6确实会关注的特定HTTP头?
Cache-Control: private, max-age=0
可以解决这个问题。在经典ASP中,可以使用Response.Expires=-1
来实现。
请记住,在测试时,仅因为您的服务器关闭了缓存并不意味着浏览器会遵守它,当它有一个旧的缓存页面,并且被告知可以缓存该页面时,请清除缓存或使用F5强制重新加载页面。
此外,在服务器提供缓存内容的情况下,您可以使用Ctrl+F5来指示服务器不要从缓存中提供内容。
你必须小心。如果你正在使用XMLHttpRequest(XHR)通过AJAX方式,那么ie6不会遵循头部中设置的缓存“推荐”。
解决方法是在用于AJAX请求的url查询中添加一个随机数。例如:
http://test.com?nonce=0123
带有“Content-Encoding:gzip”的内容始终被缓存,即使您使用了“Cache-Control:no-cache”
你也可以仅针对IE6禁用gzip。