使用<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">