さて、次のコードがあります。
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 呼び出しの完了 -> 2 番目の Ajax 呼び出しの完了 -> ループ -> 3 番目の Ajax 呼び出しの完了 -> 4 番目の Ajax 呼び出しの完了
基本的に次々と。
さらに、 async: false はオプションではありません。ブラウザーがフリーズし、Ajax クエリのたびにライブ フィードバックを表示する必要があるためです。
解決策はありますか?