xmlHttpRequest避免缓存的实例代码

发布时间:2020-12-23编辑:脚本学堂
本文介绍下,用于避免xmlHttpRequest缓存的一例代码,有需要的朋友参考下吧。

xmlHttpRequest缓存是好还是坏呢?
第一次用Ajax做一个定时刷新的东西,结果每次返回值都和第一次一样,在url后面加一个随机数即可解决。
因为只要url不一样js就认为是一个新的请求,不会读缓存了。

先来看最初的这段代码,如下所示:
 

复制代码 代码示例:

//创建一个xmlHttpRequest对象
function createXMLHttpRequest()
{
var xmlHttp;//定义xmlHttp
    if(window.ActiveXObject)
    {
        xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
    }
    else if(window.XMLHttpRequest)
    {
        xmlHttp = new XMLHttpRequest();
    }
    return xmlHttp;
}

function Refresh()
{ www.jb200.com
    var xmlHttp = createXMLHttpRequest();
    var url= "NewMessageAlertHandler.aspx";
    xmlHttp.open("GET",url,true);
    xmlHttp.onreadystatechange=function(){
    if(xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
    {
        if(xmlHttp.status==200)
        {
//alert(xmlHttp.responseText);
document.getElementById("divImg").style.display=xmlHttp.responseText;
xmlHttp = null;
setTimeout("Refresh()",5000);
}
    }
   
    };
    xmlHttp.send(null);
   
}

改进后的代码:
 

复制代码 代码示例:

//创建一个xmlHttpRequest对象
function createXMLHttpRequest()
{
var xmlHttp;//定义xmlHttp
    if(window.ActiveXObject)
    {
        xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
    }
    else if(window.XMLHttpRequest)
    {
        xmlHttp = new XMLHttpRequest();
    }
    return xmlHttp;
}

function Refresh()
{
    var xmlHttp = createXMLHttpRequest();
    var nowTime = new Date().getTime();//获取当前时间作为随机数
    var url= "NewMessageAlertHandler.aspx?time="+nowTime;
    xmlHttp.open("GET",url,true);
    xmlHttp.onreadystatechange=function(){
    if(xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
    {
        if(xmlHttp.status==200)
        {
//alert(xmlHttp.responseText);
document.getElementById("divImg").style.display=xmlHttp.responseText;
xmlHttp = null;
setTimeout("Refresh()",5000);
        }
    }
   
    };
    xmlHttp.send(null);
   
}