ajax 解决缓存问题

 

ajax  缓存老是得不到新的response   以前为这个都烦死了,今天无意中发现原来我没有太多的思考,解决方法很简单:

 

< script type = " text/javascript " >
     
                    
var  xmlHttp;

                    
function  createXMLHttpRequest() {
                        
                        
if (window.ActiveXObject){
                            xmlHttp 
= new ActiveXObject("Microsoft.XMLHTTP");
                        }
else if(window.XMLHttpRequest){
                            xmlHttp 
= new XMLHttpRequest();
                        }

                        
                    }

                    
function  dealAct(myurl) {
                        
                        
var url = myurl; 
                        
                        createXMLHttpRequest();
                        xmlHttp.onreadystatechange 
= handleStateChange; 
                        document.getElementById(
"float").style.display="block";
                        xmlHttp.open(
"GET",url);
                        xmlHttp.send(
null);
                        
                    }


                    
function  handleStateChange() {
                     
                                document.getElementById(
"content").innerHTML = "<img src=images/loading.gif>數據載入中...."
                                                       
                        
if(xmlHttp.readystate == 4){    
                            
if(xmlHttp.status == 200)
                                document.getElementById(
"content").innerHTML = xmlHttp.responseText; 
                                
var flag = MsgProject.SendWriteMail.CheckSession();
                                
                                
if(flag.value==true)
                                
{
                                
//alert(flag.value);
                                document.getElementById("float").style.display='none';
                                document.getElementById(
"content").innerHTML ="沒有數據!";
                                }

                                
//alert( xmlHttp.responseText);
                                                }

                                                }

                            
                        
                    }



                    
function  getdata()
                    
{
                        
var round =  new Date().getTime();
                        
var thisurl = "maillist.aspx?Rnd="+round;
                        
                        dealAct(thisurl);
                    }

        
</ script >





// 调用:
<body MS_POSITIONING="GridLayout" onload="getdata()">

 

关键是:

var round = new Date().getTime();

var thisurl = "maillist.aspx?Rnd="+round;

产生了随机的页,也就是说创建了新的response对象

使用AJAX取得远程服务器端数据,刷新后不能更新数据内容。这是因为IE缓存的原因,有两种解决办法。

一、在服务器端设定内容禁止缓存,代码如下:

Response.ExpiresAbsolute = DateTime.Now.AddDays(-1)
Response.Expires = 0
Response.CacheControl = "no-cache"

二、浏览器的缓存是以url为标识的,在url后加个随机参数就可以保证每次的url不同,就不会用到缓存了。

url = "showDetails.do?id="+ curID + "&Rnd=" + new Date().getTime();

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值