1

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

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

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

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

我用于 Ajax 调用的代码:

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

2 回答 2

1

你可以这样做。

var CurrentAjaxReq = null;

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

CurrentAjaxReq = jQuery.ajax({url: '/xyz.php',
success: function(data) {
 CurrentAjaxReq  = null;
//do something
}
});
于 2013-09-12T11:06:38.327 回答
1

你可以先中止ajax调用,

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

});

//abort first and than send new ajax
myAjax .abort()
于 2013-09-12T11:07:44.800 回答