这个问题在这里已经有了答案:我们如何控制所有浏览器的网页缓存? (29 个回答) 5 年前关闭。
我读到,当您无权访问 Web 服务器的标头时,您可以使用以下方法关闭缓存:
<meta http-equiv="Cache-Control" content="no-store" />
但我也读到这在某些版本的 IE 中不起作用。是否有任何一组 标签可以关闭所有浏览器中的缓存?
<meta http-equiv="Cache-Control" content="no-store"/>
。
适用于现代网络浏览器(IE9 之后)
有关正确信息,请参阅页面顶部列出的重复项!
在此处查看答案:How to control web page caching, across all browsers?
适用于 IE9 及之前
不要盲目复制粘贴这个!
该列表只是不同技术的示例,不用于直接插入。如果复制,第二个将覆盖第一个,第四个将覆盖第三个,因为 http-equiv 声明并且 W3C 验证器失败。最多可以有一个 http-equiv 声明;杂注、缓存控制和过期。在使用最新的浏览器时,这些已经完全过时了。反正在IE9之后。 Chrome 和 Firefox 尤其不能像您期望的那样使用这些,如果有的话。
<meta http-equiv="cache-control" content="max-age=0" />
<meta http-equiv="cache-control" content="no-cache" />
<meta http-equiv="expires" content="0" />
<meta http-equiv="expires" content="Tue, 01 Jan 1980 1:00:00 GMT" />
<meta http-equiv="pragma" content="no-cache" />
实际上根本不使用这些!
缓存头在元元素中是不可靠的;一方面,网站和用户之间的任何网络代理都会完全忽略它们。对于诸如 Cache-Control 和 Pragma 之类的标头,您应该始终使用真正的 HTTP 标头。
根据 Independent Security Evaluators 的出色 case study on the industry-wide misunderstanding of controlling caches,Chrome、Firefox 和 IE 仅识别 Cache-Control: no-store
。 IE 可以识别其他控件,但 Chrome 和 Firefox 不能。
它在 IE5 中不起作用,但这不是一个大问题。
然而,缓存头部在元元素中是不可靠的;一方面,网站和用户之间的任何网络代理都会完全忽略它们。对于诸如 Cache-Control 和 Pragma 之类的标头,您应该始终使用真正的 HTTP 标头。
pragma 是你最好的选择:
<meta http-equiv="Pragma" content="no-cache">
在重复相同的服务调用(长轮询)时,我注意到服务调用存在一些缓存问题。添加元数据没有帮助。一种解决方案是传递 timestamp
以确保 ie
认为它是不同的 http
服务请求。这对我有用,所以添加一个服务器端脚本代码片段来自动更新这个标签不会有什么坏处:
<meta http-equiv="expires" content="timestamp">
尝试使用
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Expires" CONTENT="-1">
不定期副业成功案例分享