任何人都知道下面代码出了什么问题?在Ajax完成后,系统只会调用getProgressMsg()
:(
function ajax_action(action)
{
setTimeout('getProgressMsg()',2000);
xmlHttp=GetXmlHttpObject();
if (xmlHttp==null)
{
alert ("Browser does not support HTTP Request")
return
}
var url="admin.php"
url=url+"?action=admin"
url=url+"&sid="+Math.random()
xmlHttp.onreadystatechange=stateChanged;
xmlHttp.open("GET",url,true);
xmlHttp.send(null);
}
function getProgressMsg()
{
xmlHttp2=GetXmlHttpObject2();
if (xmlHttp2==null)
{
alert ("Browser does not support HTTP Request")
return
}
var url2="admin.php"
url2=url2+"?action=getMsg"
url2=url2+"&sid="+Math.random()
xmlHttp2.onreadystatechange=stateChanged2;
xmlHttp2.open("GET",url2,true);
xmlHttp2.send(null);
}
答案 0 :(得分:1)
stateChanged()
,则在您返回之前不会调用getProgressMsg()
。getProgressMsg()
中什么也没做 - 你确定这不仅仅是由浏览器或网络服务器排队到没有完成处理的地方,直到第一个完成? getProgressMsg()
替换alert()
中的代码。然后将延迟从2000减少到200,并查看它是否立即显示。stateChanged()
。