Javascript 如何阻止AJAX进行多次调用?
我使用jquery倒计时插件()来显示时间。我正在调用一个函数,以便在回调事件“onTick”上添加更多时间。当时间倒计时到00:00:00时,该函数将进行ajax调用以添加额外的时间。它工作正常,但每次计时器等于00时,ajax都会进行多次调用(>15)。我怎样才能打一个电话?我尝试了async:false,但它仍在进行多个调用。多谢各位Javascript 如何阻止AJAX进行多次调用?,javascript,jquery,ajax,jquery-countdown,Javascript,Jquery,Ajax,Jquery Countdown,我使用jquery倒计时插件()来显示时间。我正在调用一个函数,以便在回调事件“onTick”上添加更多时间。当时间倒计时到00:00:00时,该函数将进行ajax调用以添加额外的时间。它工作正常,但每次计时器等于00时,ajax都会进行多次调用(>15)。我怎样才能打一个电话?我尝试了async:false,但它仍在进行多个调用。多谢各位 $(this).countdown({ until: time, format: 'HMS', onTick: addExtraTime }); func
$(this).countdown({ until: time, format: 'HMS', onTick: addExtraTime });
function addExtraTime() {
if ($.countdown.periodsToSeconds(periods) === 00) {
var postValue = { ID: id }
if (!ajaxLoading) {
ajaxLoading = true;
$.ajax({
url: "@Url.Action("AddExtraTime", "Home")",
type: 'post',
dataType: 'json',
contentType: "application/json",
data: JSON.stringify(postValue),
success: function() {
// show success
},
error: function(data) {
// show error
}
});
ajaxLoading = false;
}
}
}
您有一个变量,
ajaxLoading
,用于确定Ajax请求是否正在进行中,但您在调用$.Ajax()
后立即将其设置为false
,而不是在收到响应时。在成功和错误处理程序中,将其设置为false
。您有一个变量,ajaxLoading
,用于确定Ajax请求是否正在进行中,但在调用$.Ajax()
后立即将其设置为false
,而不是在收到响应时。在成功和错误处理程序中将其设置为false
。您正在设置ajaxLoading=false代码>即使ajax请求仍在执行中,在请求完成后将其设置为false
if (!ajaxLoading) {
ajaxLoading = true;
$.ajax({
url: "@Url.Action("AddExtraTime", "Home")",
type: 'post',
dataType: 'json',
contentType: "application/json",
data: JSON.stringify(postValue),
success: function() {
// show success
},
error: function(data) {
// show error
}
complete: function(){
ajaxLoading = false;
}
});
//ajaxLoading = false;
}
您正在设置ajaxLoading=false代码>即使ajax请求仍在执行中,在请求完成后将其设置为false
if (!ajaxLoading) {
ajaxLoading = true;
$.ajax({
url: "@Url.Action("AddExtraTime", "Home")",
type: 'post',
dataType: 'json',
contentType: "application/json",
data: JSON.stringify(postValue),
success: function() {
// show success
},
error: function(data) {
// show error
}
complete: function(){
ajaxLoading = false;
}
});
//ajaxLoading = false;
}