我是AJAX的新手
我面临的问题是我有一个需要2分钟执行的数据库查询...在执行时我希望用户获得最新发生的更新,即每30秒获取从数据库处理的订单数量
在我开始订单处理查询之前..我打印订单staus..works fine..then我开始订单处理查询和中间如果我点击更新按钮..等待订单处理完成然后给我更新......这是我的代码
<html>
<head>
<script type="text/javascript">
function getupdate()
{
v=document.getElementById('test').value;
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{alert(v);
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("update").innerHTML=v;
//document.getElementById("chunks").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("POST","querygoogle.php",true);
xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded")
xmlhttp.send("process=9");
}
function chunks()
{
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp1=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp1=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp1.onreadystatechange=function()
{
if (xmlhttp1.readyState==4 && xmlhttp.status==200)
{
document.getElementById("chunks").innerHTML=xmlhttp1.responseText;
}
}
xmlhttp1.open("POST","querygoogle1.php",true);
xmlhttp1.setRequestHeader("Content-type", "application/x-www-form-urlencoded")
xmlhttp1.send("process=0");
//xmlhttp.send();
}
</script>
</head>
<body >
<span id="txtHint"></span><input name="test" type="text" id="test" onchange="getupdate();" value="3"/>
<p>Status: </p>
<div id="chunks" >
<p>Being Submitted for Analysis</p>
<p>
<input name="search" type="button" value="search" onclick="chunks();">
</p>
</div>
<p>Update: </p>
<div id="update" ></div>
</body>
</html>
任何人都可以帮助。感谢
答案 0 :(得分:1)
听起来你的问题是服务器端而不是客户端。如果我理解正确,你想要的是:
您执行的操作onreadystatechange
是异步的,因此客户端界面只是等待ajax调用从服务器返回 - 如果在处理完成之前没有发生这种情况,则意味着您的请求在服务器上停止。
您确定请求更新的服务器端是否及时返回状态,或者它是否有可能在处理完成之前停止运行?
答案 1 :(得分:0)
是的,这肯定是服务器端问题。似乎服务器无法处理您的更新请求,因为它正在运行数据库查询。