使用Ajax开发的朋友可能都有这样的经历,在网页中需要实时刷新数据时,使用ajax在IE中却只能读到一次数据,不能实时显示最新数据,而在Firefox、Opera等浏览器中均没问题,这主要是因为IE的缓存问题,如何解决呢?
1、在请求URL中加入一个动态参数,如时间戳,但在处理程序中不一定非要处理这个时间戳
var url = "你的URL" + "×tamp=" + new Date().getTime();
2、在程序中禁止浏览器缓存
HTML
<META HTTP-EQUIV="pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Cache-Control" CONTENT="no-cache, must-revalidate">
<META HTTP-EQUIV="expires" CONTENT="Mon, 23 Jan 1978 12:52:30 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";
评论