好的,所以我们有以下代码:
var players = '<?php echo $players ?>';
for (var i = 0; i < 2; i++)
{
$.ajax({
type: "POST",
url: "url...",
data: { currentplayer: i, players: players },
dataType: 'json',
cache: false,
timeout:60000,
success: function(output){
<?php echo write_log("output[\"message\"]", "output[\"class\"]") ?>
$.ajax({
type: "POST",
url: "url...",
data: { currentplayer: i, players: players },
dataType: 'json',
cache: false,
timeout:60000,
success: function(output){
<?php echo write_log("output[\"message\"]", "output[\"class\"]") ?>
}
});
}
});
}
现在问题可能听起来很简单,但我找不到解决方案。
显然,第一个成功函数中的第二个 Ajax 调用发生在第一个完成之后。这真的很快,因为它只是一个 MySQL 请求。
现在秒一个要长得多,因为它是 PHP 文件中的一个循环(foreach 和 while)。现在它会触发第一个请求,然后是秒,然后它再次执行相同的操作(指定的循环 1 次)。现在它不会等待请求完成来继续循环。
问题:我不希望请求同时出现。
我想要这样:循环开始:第一个 Ajax 调用完成 -> 第二个 Ajax 调用完成 -> 循环 -> 第三个 Ajax 调用完成 -> 第四个 Ajax 调用完成
基本一个接一个。
另外: async: false 不是一个选项,因为它会冻结浏览器,我需要在每次 Ajax 查询后显示实时反馈。
有什么解决办法吗?