我有下面的代码。
var intervalId;
function myCallback() {
$.ajax({
url: "http://bla.html",
cache: false,
success: function(data) {
if (intervalId) {
clearInterval(intervalId);
}
if (data && data.result) {
return;
}
alert(data.result);
}
, timout: 2000
});
}
function callInterval() {
intervalId = setInterval(myCallback, 5000);
}
callInterval();
问题在于“ clearInterval(intervalId)”似乎没有在这个正确的时间使间隔无效,因为消息警报显示了两次。
这是我的问题, clearInterval(intervalId)是异步的吗?
答案 0 :(得分:0)
重点不是要成为clearInterval
同步还是异步。
在您的代码中,第一次启动间隔,然后每隔一秒钟执行一次myCallback
。
清除返回响应时的时间间隔,意味着在ajax请求执行期间,时间间隔仍在运行,并且将启动新的ajax请求。