1

一連の$.postを順番に作成しました。ロードが完了すると、次の$.postがコールバックとしてロードされます。

 $.post("test", function() {
      alert("success");
    })
    .complete(function() { 
         //LOAD NEXT SEQUENCE OF POST HERE
    });

私の問題は、最初のシーケンスが2分で読み込まれた場合、次の投稿まで2分待つ必要があるということです。私がやりたいのは、最初のシーケンスがまだ完了していない場合でも、5秒後に次のロードが実行されることです。$ .ajaxタイムアウトについて読みましたが、サーバーからの呼び出しの実行を停止したくありません。5秒のタイムアウト後に次のシーケンスがロードされることを確認したいだけです。

これは可能ですか?

ありがとうございました。

4

2 に答える 2

3

setInterval関数を使用できます

function Yourfunction()
{
    //here you need to do post one after other 
    $.post("test", function() {
      alert("success");
    }).complete(function() { 
     //Here if your interval is not elapsed and completed triggered then your next post will be loaded.
     //LOAD NEXT SEQUENCE OF POST HERE/ 
    });
}
setInterval(Yourfunction, 5000);
于 2012-10-06T00:57:14.207 に答える
1

メソッドをsetTimeoutでラップし、次の試行を開始するときに呼び出す必要があります。

var timer;
function attemptNext()
{
    timer = setTimeout(tryPost, 5000);
}

function tryPost()
{
    clearTimeout(timer);
    attemptNext('MY URL');
    $.post("test", function() {
        alert("success");
    })
    .complete(function() { 
        tryPost();
    });
}
于 2012-10-06T00:59:31.593 に答える