IE6和缓存
问题描述:
看来,IE6忽略通过HTTP Header发送任何形式的缓存失效的,我试过设置编译指示无缓存和缓存过期设置为当前时间,但在IE6,回击总是会拉起我正在处理的网页的缓存版本。IE6和缓存
是否有IE6不听太具体的HTTP头?
答
Cache-Control: private, max-age=0
的应该修复它。从经典的ASP这是用Response.Expires=-1
完成。
请记住,仅当您的服务器正在提供关闭缓存的页面进行测试时,并不意味着浏览器会遵循这一点,因为当它有一个旧的缓存页面时,它被告知可以缓存。清除缓存或使用F5强制重新加载该页面。
另外,对于服务器正在提供缓存内容的情况,您可以使用 Ctrl + F5来指示服务器不从缓存提供服务。
答
稍微注意一下:根据经验,我知道IE6会从缓存中,即使被迫通过按Ctrl-F5刷新页面加载的JavaScript。所以如果你在使用Javascript,总是清空缓存。
IE开发人员工具栏可以帮助这个巨大的。有一个清除缓存的按钮。
答
你一定要小心。如果您通过XMLHttpRequest(XHR)使用AJAX,则标头中设置的缓存“建议”不受ie6的尊重。
解决方法是使用一个随机数追加到AJAX请求中使用的URL查询。例如:
http://test.com?nonce=
一个很好的发生器,这是UTC()函数,返回给用户的浏览器的唯一timestame ...也就是说,除非他们乱用他们的系统时钟。
F5原因Pragma:将no-cache添加到请求头中。除此标题外,Ctrl-F5还可以取消if-modified-since和if-none-match标题,从而删除源服务器选项以发送304 Not Modified响应。缓存控制不会在请求头中发送。 – AnthonyWJones 2008-09-19 18:19:50