IE6和缓存

时间:2008-09-03 18:41:04

标签: caching internet-explorer-6 http-headers dynamic-pages

似乎IE6忽略了通过http标头发送的任何形式的缓存失效,我尝试将Pragma设置为No Cache并将Cache Expiration设置为当前时间,但在IE6中,回击将始终拉出缓存版本我正在处理的一个页面。

是否有IE6确实收听的特定HTTP标头?

6 个答案:

答案 0 :(得分:8)

Cache-Control: private, max-age=0应该修复它。从经典ASP开始,这是使用Response.Expires=-1完成的。

在测试时请记住,仅仅因为您的服务器正在为关闭缓存的页面提供服务并不意味着当浏览器有一个旧的缓存页面时,它会被告知可以缓存。清除缓存或使用F5强制重新加载该页面。

此外,对于服务器提供缓存内容的情况,您可以使用 Ctrl + F5 来通知服务器不要从缓存中提供服务。

答案 1 :(得分:1)

你必须小心。如果您通过XMLHttpRequest(XHR)使用AJAX,则ie6不会遵守标头中设置的缓存“推荐”。

修复方法是使用随机数附加到AJAX请求中使用的url查询。例如:

http://test.com?nonce=0123 

一个好的生成器是UTC()函数,它为用户的浏览器返回一个唯一的时间段......也就是说,除非它们弄乱了系统时钟。

答案 2 :(得分:0)

您是否尝试在标题中设置ETag?它们是一种非常可靠的方式来表明内容已发生变化w3c Spec& Wikipedia

除此之外,更粗略的方法是在请求中附加随机查询字符串参数,例如当前的unix时间戳。正如我所说,原油,但IE6并不是最微妙的野兽

答案 3 :(得分:0)

一点注意事项:根据经验,我知道即使强行通过ctrl-f5重新加载页面,IE6也会从缓存中加载Javascript。因此,如果您正在使用Javascript,请始终清空缓存。

IE Web开发人员工具栏可以为此提供极大的帮助。有一个清除缓存的按钮。

答案 4 :(得分:0)

答案 5 :(得分:0)

使用“内容编码:gzip”的内容始终缓存,尽管您使用“缓存控制:无缓存”

http://support.microsoft.com/kb/321722

你也可以为IE6禁用gzip

相关问题