这个问题在这里已有答案:
我读到,当您无法访问Web服务器的标头时,您可以使用以下命令关闭缓存:
<meta http-equiv="Cache-Control" content="no-store" />
但我也读到这在某些版本的IE中不起作用 . 是否有任何<meta>标签可以关闭所有浏览器中的缓存?
请在此处查看答案:How to control web page caching, across all browsers?
该列表只是不同技术的示例,不适合直接插入 . 如果复制,第二个将覆盖第一个,第四个将覆盖第三个,因为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" />
缓存标头在元素中不可靠;例如,站点和用户之间的任何Web代理都将完全忽略它们 . 您应该始终为标头(例如Cache-Control和Pragma)使用真正的HTTP标头 .
这是对行业范围内控制缓存误解的案例研究的链接 .
http://securityevaluators.com/knowledge/case_studies/caching/
总之,根据本文,只有 Cache-Control: no-store 被Chrome,Firefox和IE识别 . IE识别其他控件,但Chrome和Firefox不识别 .
Cache-Control: no-store
它在IE5中不起作用,但这不是一个大问题 .
但是,缓存标头在元素中是不可靠的;例如,站点和用户之间的任何Web代理都将完全忽略它们 . 您应该始终为标头(例如Cache-Control和Pragma)使用真正的HTTP标头 .
pragma是你最好的选择:
<meta http-equiv="Pragma" content="no-cache">
我注意到在重复相同的服务调用(长轮询)时服务调用存在一些缓存问题 . 添加元数据没有帮助 . 一种解决方案是传递 timestamp 以确保 ie 认为它是一个不同的 http 服务请求 . 这对我有用,所以添加一个服务器端脚本代码片段来自动更新这个标签不会有害:
timestamp
ie
http
<meta http-equiv="expires" content="timestamp">
尝试使用
<META HTTP-EQUIV="Pragma" CONTENT="no-cache"> <META HTTP-EQUIV="Expires" CONTENT="-1">
6 回答
适用于现代网络浏览器(IE9之后)
有关正确信息,请参阅页面顶部列出的重复项!
请在此处查看答案:How to control web page caching, across all browsers?
对于IE9及之前
不要盲目复制贴这个!
实际上根本不使用这些!
这是对行业范围内控制缓存误解的案例研究的链接 .
http://securityevaluators.com/knowledge/case_studies/caching/
总之,根据本文,只有
Cache-Control: no-store
被Chrome,Firefox和IE识别 . IE识别其他控件,但Chrome和Firefox不识别 .它在IE5中不起作用,但这不是一个大问题 .
但是,缓存标头在元素中是不可靠的;例如,站点和用户之间的任何Web代理都将完全忽略它们 . 您应该始终为标头(例如Cache-Control和Pragma)使用真正的HTTP标头 .
pragma是你最好的选择:
我注意到在重复相同的服务调用(长轮询)时服务调用存在一些缓存问题 . 添加元数据没有帮助 . 一种解决方案是传递
timestamp
以确保ie
认为它是一个不同的http
服务请求 . 这对我有用,所以添加一个服务器端脚本代码片段来自动更新这个标签不会有害:<meta http-equiv="expires" content="timestamp">
尝试使用