jQuery Ajax: - 如何删除待处理的ajax调用和活动的最近ajax调用?

时间:2013-09-12 11:02:40

标签: ajax jquery

我在我的网站上使用jQuery.ajax,用户可以选中多个复选框。从选中的复选框中,用户将获得数据。

对于每个选择框,它正在执行ajax请求并显示结果。

但我面临一个问题,假设用户选择第一个复选框,然后再次取消选中第一个复选框并再次选择第二个复选框。 因此,为了选择第一个复选框,它正在执行第一个ajax调用,当用户取消选择第一个选择框时,它正在执行第二个ajax调用,然后对于第二个选择框,它正在执行第三个ajax调用。

所以同时3个ajax调用是活动的但是我想要一种方法来中止所有先前的ajax调用,这些调用仍处于挂起或正在进行中,并根据上一个/最近的ajax调用显示结果。

我用于Ajax调用的代码:

   jQuery.ajax({url: '/xyz.php',
    success: function(data) {
    //do something
    }
});

2 个答案:

答案 0 :(得分:1)

你可以这样做。

var CurrentAjaxReq = null;

if(CurrentAjaxReq != null)
{
CurrentAjaxReq.abort(); 
}

CurrentAjaxReq = jQuery.ajax({url: '/xyz.php',
success: function(data) {
 CurrentAjaxReq  = null;
//do something
}
});

答案 1 :(得分:1)

你可以先中止ajax呼叫,

var myAjax = jQuery.ajax({url: '/xyz.php',
success: function(data) {
//do something
}

});

//abort first and than send new ajax
myAjax .abort()