我試圖做無限滾動,所以當滾動我向服務器發送ajax請求來獲取數據但滾動多個Ajax請求時,並返回相同的數據,所以如何我可以在發送前取消Ajax請求,如果有一個已經存在,我想這樣的如何阻止Ajax請求存在另一個請求
data: ({
beforeSend: function (xhr) {
if (activeAjaxConnections != 1) {
xhr.abort();
}
activeAjaxConnections++;
//Show Loader....
$("#Ajax-Load-Image").css('visibility', 'visible');
},
我所有的代碼
var lock_load = '1';
var activeAjaxConnections = 1;
var PageNumber = 2;
$(window).scroll(function() {
if ((Math.ceil($(window).scrollTop() - $(window).height()) * -1) <= getHeight() + 550) {
if (lock_load === '1') {
var xhr = $.ajax({
type: "POST",
async: true,
dataType: "json",
url: ajaxurl,
data: ({
beforeSend: function (xhr) {
if (activeAjaxConnections != 1) {
xhr.abort();
}
activeAjaxConnections++;
//Show Loader....
$("#Ajax-Load-Image").css('visibility', 'visible');
},
type: "POST",
action: 'Ajax_Get_SpacesAndSponsors',
Page: PageNumber
}),
success: function (response) {
PageNumber++;
var Message = response.spaces.Message;
console.log(response);
console.log(Message);
Draw_SpacesAndSponsor(response);
lock_load = response.spaces.Lock_load;
activeAjaxConnections--;
},
error: function (errorThrown) {
alert(errorThrown);
n }
});
}
}
});
,但它給出一個錯誤XHR是不確定的請求任何幫助,許多在此先感謝。
如果你想讓它完成之前停止AJAX調用,爲什麼不直接包住'$。阿賈克斯(...)'來檢查,如果activeAjaxConnections爲1的條件之間? –