这几天被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()
{
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);
}
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 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);
}
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);
}