禁用客户端缓存
HTM网页
<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"; javascript
加入
<MEAT HTTP-EQUIV="Pragma" CONTENT="no-cache">
不缓存。php
1、Expires(期限)
说明:能够用于设定网页的到期时间。一旦网页过时,必须到服务器上从新调阅。
用法:<META HTTP-EQUIV="expires" CONTENT="Wed, 26 Feb 1997 08:21:57 GMT">
注意:必须使用GMT的时间格式。
2、Pragma(cache模式)
说明:禁止浏览器从本地机的缓存中调阅页面内容。
用法:<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
注意:这样设定,访问者将没法脱机浏览。
3、脚本实现
<%
response.expires = 0
response.expiresabsolute = now() - 1
response.addHeader "pragma","no-cache" response.addHeader "cache-control","private"
Response.cachecontrol = "no-cache"
%>html
IE浏览器访问一个网页的时候,首先会到临时文件夹中去寻找和这个网页相关的各个文件(如各类图片)。若是在临时文件夹中找到了一些文件,那么浏览器就会使用这些临时文件夹中的文件,而不去服务器下载这些文件。
不幸的是,个人服务器上的文件是常常变化的,若是IE优先考虑临时文件夹中的文件,那么就不能反映出我服务器上的变化。
如今有两个解决办法,但都有缺陷:
一是使用网页的自刷新,可是刷新速度快的话会有闪烁,不符合我其余方面的要求。
二是在IE设置中设成“每次访问此页时检查”。此时IE不考虑临时文件夹中的内容,直接从服务下载各个文件。可是这种办法须要用户进行设置,对用户来讲有点麻烦。并且这样的设置会影响用户访问其余网站的速度。 java
###############################################jquery
html方法:ajax
<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">浏览器
php方法:缓存
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Cache-Control: no-cache, must-revalidate");
header("Pragma: no-cache");服务器
六、禁止图片缓存:在图片后面加一个随机参数,如:dom
<img src=”images/bg.gif?temp_id=156404/>
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Cache-Control" CONTENT="no-cache">
<META HTTP-EQUIV="Expires" CONTENT="0">
<META HTTP-EQUIV="PRAGMA" CONTENT="NO-CACHE"> <!-- 禁止浏览器缓存页面 -->
六、那么如何禁止IE缓存,采用Ajax技术数据更新不及时
方法1:服务器端代码加入response.setHeader("Cache-Control", "no-cache, must-revalidate");
方法2:用JavaScript在Ajax提交的时候加入一个随机数做为URL中的一个参数。req.open(url + "&" + Math.random).
缘由:IE中若是XMLHttpRequest提交的URL与历史同样则使用缓存,根本不向服务器端提交。所以没法取到刚提交的数据。
在ajax的应用中,当用户访问一次后,再进行访问当XMLHttpRequest请求不变的时,在ie中会出现这样的现象,那就是取数据不会到服务器端 取,而是直接从ie的缓存中取,则会就是ie的缓存问题。在ajax中解决缓存的问题采用时间戳的方式,即为每一个XNLHttpRequest请求后面加 一个时间戳的标志,从而保证每次请求都是新的从而解决ie缓存问题,下面是简单的例子。
下面是简单的例子,验证用户点击了验证按钮几回的例子一、首先看js的代码Java代码