关于IE缓存的解决方案(HTML,JSP,ASP,PHP,C#)
转载本站文章请注明,转载自:扶凯[http://www.php-oa.com]
本文链接: http://www.php-oa.com/2008/02/23/guanyuiehuancundejiejuefanganhtmljspaspphpc-2.html
禁止服务器端缓存:
Response.Expires = 0 或<meta http-equiv="Expires" CONTENT="0">
禁用客户端缓存。
HTML网页
<META HTTP-EQUIV="pragma" CONTENT="no-cache"> <META HTTP-EQUIV="Cache-Control" CONTENT="no-cache, must-revalidate"> <META HTTP-EQUIV="expires" CONTENT="Wed, 26 Feb 1997 08:21:57 GMT">
ASP网页
<% Response.Expires = -1 Response.ExpiresAbsolute = Now() – 1 Response.cachecontrol = "no-cache" %>
PHP网页
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); header("Cache-Control: no-cache, must-revalidate"); header("Pragma: no-cache");
JSP
response.setHeader("Pragma","No-Cache"); response.setHeader("Cache-Control","No-Cache"); response.setDateHeader("Expires", 0);
C#中禁止cache的方法!
Response.Buffer=true; Response.ExpiresAbsolute=System.DateTime.Now.AddSeconds(-1); Response.Expires=0; Response.CacheControl="no-cache";



















呵呵,你的工作进度抓得很紧嘛。
签名
—
写程序的兄弟开始抱怨了吧?
哈哈,还没有
请区分meta标签和HTTP协议头。squid这样的代理服务器是不读取解析HTML正文内容的,而HTTP协议的的header信息中间代理会读取的。如果希望准确的控制网页的缓存行为,就不要依赖于meta标签,借用《开发出高性能的网站-第二部分 — 最佳缓冲控制》中的一句话,它说“反正浏览器也要读HTTP headers,所以标签的缓冲控制并不太被网站开发人员所青睐。”(作者 Thomas A. Powell, Joe Lima )。
对静态的页或图片等web服务器通常有自己的的缓存控制策略。例如apache的mod_expires,加载了模块之后,apache就会根据相应的配置语句为文件设置相应的response HTTP header
squid这样的外部缓存加速代理服务器理论上不依赖于apache。也就是说让代理做代理的事,web做web的事,即使apache不做任何设置,squid也有方法cache住内容,所以就有了refresh_pattern。
非常非常不错,今天一早就读完了这个.太有用了.