使用AJAX生成服务器请求并从服务器保存结果

时间:2012-10-19 08:36:50

标签: javascript ajax

我是AJAX的新手,我想在循环中向服务器发送AJAX请求,然后显示来自服务器的响应。该场景在客户端页面上我有一个表数组,我想逐个发送,服务器接收表名,进程,然后发送响应。在客户端,我想在他们到达时显示回复。等。

Table 1 processed
Table 2 processed
Table 3 processed
COMPLETED

您可以从以下大块代码中了解我正在尝试的内容     。的document.getElementById( 'btnReport')的style.display = '无';     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='';

  }
}

}

2 个答案:

答案 0 :(得分: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>。您可以将其替换为您的特定元素。

答案 1 :(得分: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);
                    }
                }
            });
        }();
    });

});