Javascript jqueryajax请求在每个请求上都呈指数增长
我使用jqueryajax调用从api获取信息并存储它。我遇到的问题如下: 第一次打电话时,一切似乎都正常。当第二次调用(1分钟后)再次调用时,只会发生一次调用,但如果第三次调用2次sendData函数,则会调用第四次4次sendData函数 请告诉我哪里出了问题。提前谢谢Javascript jqueryajax请求在每个请求上都呈指数增长,javascript,jquery,ajax,Javascript,Jquery,Ajax,我使用jqueryajax调用从api获取信息并存储它。我遇到的问题如下: 第一次打电话时,一切似乎都正常。当第二次调用(1分钟后)再次调用时,只会发生一次调用,但如果第三次调用2次sendData函数,则会调用第四次4次sendData函数 请告诉我哪里出了问题。提前谢谢 $(document).ready(function() { $(function ajaxCall() { $.ajax({ url: "https://blockchain.info/ticker
$(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");
}
}
});
});
我建议您将调用方法移到Ajax的complete方法:
$(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);
}
});
})
});
每一次成功的召唤,你都会有一个间隔。。。。。是否要使用
setTimeout
?请删除async:false
。这是非常糟糕的做法。您还可以在每次我再次需要数据后删除包装ajaxCall()
函数的jQuery对象,这就是我使用setInterval的原因