0

我是 AJAX 新手,我想循环发送 AJAX 请求到服务器,然后显示来自服务器的响应。场景在客户端页面上,我有一组表,我想一个一个发送,服务器接收表名,处理,然后发送响应。在客户端,我想在它们到达时显示响应。例如

Table 1 processed
Table 2 processed
Table 3 processed
COMPLETED

您可以从以下代码块中了解我正在尝试什么 document.getElementById('btnReport').style.display='none'; var http = new XMLHttpRequest();

for (var i = 0; i < tableArray.length; i++) 
{
http.open("GET","ServerPage.php?t="+tableArray[i], true);
http.send();
http.onreadystatechange = function() 
{
  if(http.readyState == 4 && http.status == 200) 
  {
    eLoader.hide();
    document.getElementById('txtResult').innerHTML += http.responseText;
    document.getElementById('btnReport').style.display='';

  }
}

}

4

2 回答 2

0

由于您对 JavaScript 非常陌生,因此我建议您使用jQuery之类的库,这会使编码更容易。它也是 JavaScript,但只是添加了一些预定义的函数以方便使用。

现在回答你的问题,jQuery 中有一个方法叫做$.ajax(). 使用它,timers你可以实现你想要的。

通常,您希望请求在页面加载时开始。将代码以$(document).ready(function(){});这种方式放入:

$(document).ready(function(){
    $("a.load").click(function(){
        $("#result").load("phpPage");
    });
});

在这里,我使用了一个名为 的函数$.load(),该函数将 URL 加载到元素<div id="result"></div>. 您可以用您的特定元素替换它。

于 2012-10-19T08:41:44.453 回答
0

使用jQuery

$(function(){
    $(someButtonElement).on('click', function(){
        var tableArrayLen = tableDataArray.length, i = 0;
        (function sendRequest(i){
            $.ajax({
                url: 'your URL here',
                data: tableDataArray[i],
                success: function(d){
                    $(someResultDiv).append(d);
                    if(i < tableArrayLen) {
                        i++;
                        sendRequest(i);
                    }
                }
            });
        }();
    });

});
于 2012-10-19T08:58:50.883 回答