-
09-06-2019 - |
题
看来 IE6 会忽略通过 http 标头发送的任何形式的缓存失效,我尝试将 Pragma 设置为“无缓存”并将“缓存过期”设置为当前时间,但在 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
一个很好的生成器是 UTC() 函数,它返回用户浏览器的唯一时间戳......也就是说,除非他们弄乱了系统时钟。
一点注意:根据经验,我知道 IE6 会从缓存加载 Javascript,即使强制通过 ctrl-f5 重新加载页面。因此,如果您正在使用 Javascript,请务必清空缓存。
IE Web 开发人员工具栏可以对此提供极大帮助。有一个清除缓存的按钮。
看 问题:确保网页不会在所有浏览器中被缓存。 如何跨所有浏览器控制网页缓存? 我认为这也应该有助于解决你的问题。
不隶属于 StackOverflow