2017-04-07 18 views
1

このスニペットでは、$ JAX(this)が間違って5つのajax呼び出しを行っていますが、各要求の間に5秒の遅延が必要です。助けてください!5秒後にAjaxコールを再試行してください

$.ajax({ 
    type: "POST", 
    data: JSON.stringify(download), 
    contentType: "application/json", 
    url: '', 
    retryCount: 1, 
    retryLimit: 5, 
    success: function(data) { 
    $.ajax({ 
     type: "GET", 
     url: '', 
    }) 
     .success(function(data) { 

    }) 
     .error(function(data) { 

    }) 
    }, 
//It has to go into error 
    error : function(xhr, textStatus, errorThrown) { 
    this.retryCount++; 
    if (this.retryCount <= this.retryLimit) { 
     //try again 
     $.ajax(this); 
     return; 
    } else { 
     //user comes here After trying in the if loop for 5 times, with each request having five seconds delay. I am not able to keep delay between each request 
    } 
    return; 
    } 

}); 
+1

はあなたのコードの遅延側面のためのsetTimeoutを使用して検討していますか? –

+0

https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope/setTimeout –

答えて

0

これを試してみてください:

error : function(xhr, textStatus, errorThrown) { 
    this.retryCount++; 
    if (this.retryCount <= this.retryLimit) { 
     //try again 
     var ajaxObject = this; 
     window.setTimeout(function(){ 
      $.ajax(ajaxObject); 
     },5000); 

     return; 
    } else { 
     //user comes here After trying in the if loop for 5 times, with each request having five seconds delay. I am not able to keep delay between each request 
    } 
    return; 
    } 
+0

これはDanielと1つの簡単な質問に感謝します。私は5つのアンカータグがと仮定しています。 jquery –

+0

$( "a.m")$( "a.o")などから特定のアンカーを選択する方法を知っています –

+0

前のコードに1つのバグがあります。このリクエストが行われている間に別の新しい呼び出しを行うことを避けるためにボタンを無効にする方法 –

0

このようなあなたのAjax呼び出しをラップしてみてください。

setTimeout(function() { 
    $.ajax(this); 
}, 5000); 
+0

'function()=' - 新しい構文? : –

+0

申し訳ありませんJasこれはうまくいきません –

+0

lol申し訳ありません私は電話で入力していたに違いありませんでした:)私は最近、多くの矢印機能を使用しており、間違っている可能性があります。 –

関連する問題