我试图做无限滚动,所以当滚动我向服务器发送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是不确定的请求任何帮助,许多在此先感谢。
2015-06-19
Fadi
+1
如果你想让它完成之前停止AJAX调用,为什么不直接包住'$。阿贾克斯(...)'来检查,如果activeAjaxConnections为1的条件之间? –