私はいくつかの機能を実行するスクリプトを作成しており、関数が完了するとユーザーを更新したいと思います。私は$.ajax()
の呼び出しを、前回の呼び出しの各呼び出しで入れ子にしました。success
ブロック。オーダーされた非同期AJAXコール
各ループに合計4回の呼び出しがあります。 scan_1
からscan_4
までとしましょう。 success
ブロックのscan_1
はscan_2
などと呼ばれ、チェーンの下にあります。
たとえば、3つのオブジェクトをループしているとします。
- ループ2
ループ1
- scan_1
- scan_2
- scan_3
- scan_4
:私は、プロセスはこのように行きたいですscan_1
- scan_2
- scan_3
- scan_4
ループ3
- scan_1
- scan_2
- scan_3
- scan_4
問題は、最初にすべてのscan_1
コールが実行されていることです。私は何かを欠いているに違いないが、私はそれを理解しているようには見えない。アドバイスをいただければ幸いです。参考のため
は、ここscan_1
のスニペットは、(無関係なものが切り取ら)である:
for(var i = 1; i <= 3; i++)
{
$.ajax({
type: 'GET',
url: url,
data: 'do=scan&step=1&' + string,
dataType: 'json',
success: function (result)
{
if(result.proceed == 'true')
{
$('#scan_progress').append(result.message);
scan_2();
}
else
{
$('#scan_progress').append(result.message);
}
}
});
}
思考?
ありがとうございます。
これは私の答えだと思います。本当にありがとう! – SenorAmor
@SenorAmorあなたは何を使用して終了しましたか?私の答えはあなたのコードで遅延オブジェクトを使用する方法の例を示しているからです。 – Jasper
@SenorAmorあなたが使ったことを投稿して、あなたが持っていたものと同じ質問でここに来る他の誰もがあなたが使ったものを見ることができるようにするなら、コミュニティにとっては良いでしょう。 –