处理多个AJAX请求

时间:2010-12-04 06:46:02

标签: javascript ajax

我是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>
任何人都可以帮助。感谢

2 个答案:

答案 0 :(得分:1)

听起来你的问题是服务器端而不是客户端。如果我理解正确,你想要的是:

  1. 客户端发送数据库查询请求。
  2. 客户请求更新。
  3. 收到更新。
  4. 客户请求更新。
  5. 收到更新。 (重复直到......)
  6. 收到查询结果。
  7. 您执行的操作onreadystatechange是异步的,因此客户端界面只是等待ajax调用从服务器返回 - 如果在处理完成之前没有发生这种情况,则意味着您的请求在服务器上停止。

    您确定请求更新的服务器端是否及时返回状态,或者它是否有可能在处理完成之前停止运行?

答案 1 :(得分:0)

是的,这肯定是服务器端问题。似乎服务器无法处理您的更新请求,因为它正在运行数据库查询。