PHP强制浏览器不缓存的方法
一般我们要查看网上的一个网页,那么当您第一次访问这个网页的时候,系统首先要将这个网页下载到您的本地计算机的一个临时文件夹中进行缓存,当在一定的时间内,您第二次、第三次来访问这个网页的时候,浏览器就直接从您的本地计算机的临时文件夹中读取这个文件显示,这样做的好处就是避免每次都要重新下载而占用大量的时间和网络资源,不得不说页面的缓存加快了网页的显示,当然也有它的坏处,例如当服务器上的网页己经更新,而本地显示的还是没有更新的网页,这样就不能及时的显示更新后的内容,在某些情况下,我们需要禁止浏览器缓存,以使我们每次看到的页面都是最新的页面(例如后台操作、大型网站的时时新闻页面),这时我们就要禁用浏览器缓存,下面分别说明了在四种不同的页面环境下来禁止网页缓存:
一、对于静态页:
可以利用
标记符的另一种用法来实现,其用法为:
特别说明:有很多人问到,这样设置了没有用,网页仍有缓存,那是因为您没有设置页面过期时间的原因,您必须同时指定当前页面的过期时间,例如:
这儿的meta标签用来定义页面过期时间为:2006年8月23日 23:40:27
需要特别注意的是content的值必须是一个UTC格式的标准时间(有关UTC格式的时间,请参见本站javascript教程)或者GMT时间(由于GMT时间己过时,所以建议用UTC标准格式),如果您要让网页立即过期,您可以设置一个过期时间远小于现在的时间,例如:
Mon,1 Jan 2001 0:0:0 UTC
二、对于ASP页面:
可利用以下语句下实现:
Response.Buffer=true
Response.CacheControl="no-cache" '禁止代理服务器缓存本页面
Response.Expires=-1000 '让页面立即过期(这儿最好设置一个绝对值较大的负数)
%>
以下是代码片段: <% Response.Buffer=true Response.CacheControl="no-cache" ’禁止代理服务器缓存本页面 Response.Expires=-1000 ’让页面立即过期(这儿最好设置一个绝对值较大的负数) %> |
三、对于JSP页面:
<%
if (request.getProtocol().compareTo("HTTP/1.0")==0)
response.setHeader("Pragma","no-cache");
if (request.getProtocol().compareTo("HTTP/1.1")==0)
response.setHeader("Cache-Control","no-cache");
response.setDateHeader("Expires",0);
%>
以下是代码片段: <% if (request.getProtocol().compareTo("HTTP/1.0")==0) response.setHeader("Pragma","no-cache"); if (request.getProtocol().compareTo("HTTP/1.1")==0) response.setHeader("Cache-Control","no-cache"); response.setDateHeader("Expires",0); %> |
四、对于PHP页面:
以下是代码片段: <?php header ("Cache-Control: no-cache, must-revalidate"); header ("Pragma: no-cache"); ?> |
说明:对于动态页面,缓存的代码必须放在任何HTML标签输出之前,否则将会出错。%>%>?PHP>
建议继续学习:
- 浏览器的工作原理:新式网络浏览器幕后揭秘 (阅读:19551)
- 浅析http协议、cookies和session机制、浏览器缓存 (阅读:15800)
- 分布式缓存系统 Memcached 入门 (阅读:14722)
- 从输入 URL 到页面加载完成的过程中都发生了什么事情? (阅读:14502)
- 强制刷新本地 DNS 缓存记录 (阅读:9243)
- 程序员眼里IE浏览器是什么样的 (阅读:6852)
- 浏览器的渲染原理简介 (阅读:6389)
- php缓存与加速分析与汇总 (阅读:6287)
- 各种浏览器审查、监听http头工具介绍 (阅读:6250)
- 图说浏览器战争:火狐、微软、谷歌那些事 (阅读:6080)
扫一扫订阅我的微信号:IT技术博客大学习
- 作者:ArthurXF 来源: 肖飞的blog
- 标签: 浏览器 缓存
- 发布时间:2009-12-24 23:54:39
- [53] IOS安全–浅谈关于IOS加固的几种方法
- [52] 如何拿下简短的域名
- [51] 图书馆的世界纪录
- [50] android 开发入门
- [50] Oracle MTS模式下 进程地址与会话信
- [49] Go Reflect 性能
- [46] 【社会化设计】自我(self)部分――欢迎区
- [46] 读书笔记-壹百度:百度十年千倍的29条法则
- [36] 程序员技术练级攻略
- [29] 视觉调整-设计师 vs. 逻辑