2017-04-10 3 views
-2

私はJquery-ajaxコールを使用して、APIから情報を取得して保存します。私が遭遇する問題は、次のとおりです。Jquery ajaxリクエストは、リクエストごとに指数関数的に増加します。

最初の呼び出しが行われたときにすべてが正常に見えます。コールが2回目(1分後)に再び呼び出されると、1回のみの呼び出しが行われますが、3回目のコールではsendData関数が呼び出され、2回目は4回目のsendData関数がコールされます。

私はどこに間違っているのか教えてください。事前にありがとうございます。

$(document).ready(function() { 
    $(function ajaxCall() { 
    $.ajax({ 
     url: "https://blockchain.info/ticker", 
     method: "GET", 
     dataType: "json", 
     crossDomain: true, 
     processData: true, 
     async: false, 
     success: function(resp) { 
     if (resp != null) { 
      alert(resp); 
      var myJSON = JSON.stringify(resp); 
      alert(myJSON); 
      sendData(myJSON); 

      setInterval(ajaxCall, 1000 * 60); 
     } else { 
      alert("something went wrong"); 
     } 
     }  
    }); 
    }); 
+6

すべての成功あなたは 'setTimeout'を使用するようにもしかして.....間隔を作る呼び出しますか? – epascarello

+2

'async:false'を削除してください。信じられないほど*悪い習慣です。また、 'ajaxCall()'関数をラップするjQueryオブジェクトを削除することもできます。 –

+0

毎分ごとに、なぜ私はsetIntervalを使用したのかのデータが必要です –

答えて

-1

私はアヤックスの完全なメソッドを呼び出す方法を移動するために、あなたをお勧めします:

$(document).ready(function() { 
    $(function ajaxCall() { 
     $.ajax({ 
      url: "https://blockchain.info/ticker", 
      method: "GET", 
      dataType: "json", 
      crossDomain: true, 
      processData: true, 
      success: function (resp) { 
       if (resp !== null) { 
        alert(resp); 
        var myJSON = JSON.stringify(resp); 
        alert(myJSON); 
        sendData(myJSON); 


       } else { 
        alert("something went wrong"); 
       } 
      }, 
      complete: function() { 
       setInterval(ajaxCall, 1000 * 60); 
      } 
     }); 
    }) 
}); 
+0

彼の意見を説明するのは素晴らしいことでしょう –

関連する問題