我在我的网站上使用jQuery.ajax,用户可以选中多个复选框。从选中的复选框中,用户将获得数据。
对于每个选择框,它正在执行ajax请求并显示结果。
但我面临一个问题,假设用户选择第一个复选框,然后再次取消选中第一个复选框并再次选择第二个复选框。 因此,为了选择第一个复选框,它正在执行第一个ajax调用,当用户取消选择第一个选择框时,它正在执行第二个ajax调用,然后对于第二个选择框,它正在执行第三个ajax调用。
所以同时3个ajax调用是活动的但是我想要一种方法来中止所有先前的ajax调用,这些调用仍处于挂起或正在进行中,并根据上一个/最近的ajax调用显示结果。
我用于Ajax调用的代码:
jQuery.ajax({url: '/xyz.php',
success: function(data) {
//do something
}
});
答案 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)
var myAjax = jQuery.ajax({url: '/xyz.php',
success: function(data) {
//do something
}
});
//abort first and than send new ajax
myAjax .abort()