我是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='';
}
}
}
答案 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);
}
}
});
}();
});
});