使用<meta>标签在所有浏览器中closurescaching?

我读到,当你没有访问Web服务器的头你可以closurescaching使用:

<meta http-equiv="Cache-Control" content="no-store" /> 

但是我也看到这在IE的某些版本中不起作用。 有没有一组<meta>标签可以closures所有浏览器中的caching?

不要一味的复制粘贴这个!

这个列表只是不同技术的例子,不是直接插入的。 如果被复制,第二个会覆盖第一个,第四个会覆盖第三个,因为http-equiv声明和W3Cvalidation器失败。 最多可以有一个http-equiv声明; 杂注,caching控制和到期。 使用现代的最新浏览器时,这些都完全过时了。 无论如何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" /> 

其实根本就不用这些!

caching标题在元素中不可靠; 首先,网站和用户之间的任何networking代理将完全忽略它们。 您应该总是使用一个真正的HTTP标头,如Cache-Control和Pragma。

请参阅页面顶部列出的重复以获取正确的信息!

这是一个关于控制caching行业广泛误解的伟大案例研究的链接。

http://securityevaluators.com/knowledge/case_studies/caching/

总之,根据这篇文章,只有Cache-Control: no-store被Chrome,Firefox和IE识别。 IE可以识别其他控件,但Chrome和Firefox不支持。

它在IE5中不起作用,但这不是一个大问题。

但是,在meta元素中caching标题是不可靠的; 首先,网站和用户之间的任何networking代理将完全忽略它们。 您应该总是使用一个真正的HTTP标头,如Cache-Control和Pragma。

杂注是你最好的select:

 <meta http-equiv="Pragma" content="no-cache"> 

当重复相同的服务调用(长轮询)时,我注意到一些服务调用的caching问题。 添加元数据没有帮助。 一个解决scheme是通过一个timestamp以确保ie认为这是一个不同的http服务请求。 这工作对我来说,所以添加一个服务器端脚本代码片段来自动更新这个标签不会伤害:

<meta http-equiv="expires" content="timestamp">

尝试使用

  <META HTTP-EQUIV="Pragma" CONTENT="no-cache"> <META HTTP-EQUIV="Expires" CONTENT="-1">