[英]Consequtive Ajax Calls from HTML (and jQuery)
我正在编写一个报告工具,使用户可以通过单击鼠标来检查某些服务器。
基本上,我有一个名为check_server.php
的PHP脚本。 该文件需要1个参数,名为serverNode。 例如check_server.php?serverNode=1234
。 该脚本返回true或false。 False表示服务器已关闭。
现在,我想要实现的是拥有一个简单的2列表,其中所有服务器节点都列在第一栏中。 当用户单击“报告”时,我想对表中的每一行进行Ajax调用。 因此,首先是check_server.php?serverNode=1
,然后是check_server.php?serverNode=5
等。然后,每行显示成功或失败图标。
我怎样才能做到这一点? 如果前一个节点返回true或false,则只能检查下一个节点。 有人有一个(明确的)例子吗? 提前致谢!
我不知道我是否正确理解了您的问题,但我认为您正在尝试在完成其他ajax请求之后发送一个ajax请求。 如果那是正确的,您可以尝试这个。
每个ajax请求都会有一些状态,例如之前,之后,完成等。
用一个jQuery变量定义ajax请求,例如
var xyz = $.ajax({ --- --- })
现在您可以像这样检查
if( xyz.readyState == 1 ) { /* send other ajax request */ }
第一个请求完成后,它会自动发送另一个ajax请求。
也许您可以有这样的内容(免责声明:我没有测试过):
var nodeIDs = [1, 2, 3, 5, 9, 10];
function checkNextNode() {
// no more nodes to check
if (nodeIDs.length === 0)
{
return;
}
// get first nodeId in the list
var nextNode = nodeIDs.shift();
// make an AJAX call to check this nodeID
$.ajax({
type: 'GET',
url: 'check_server.php',
data: { serverNode: nextNode },
success: function onSuccess(result) {
// if the AJAX call is a success, do something useful with result
// ex: display it in the table
// then check the next node
checkNextNode();
}
});
}
// when the user click on the "report" element, call the "checkNextNode" function
yourReportElement.on('click', checkNextNode);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.