如果用户位于页面底部附近,我会加载下一页。
我最近刚刚将其切换到 jQuery,现在使用 jQuery.ajax()
函数来获取数据。但是,现在我无法检查 xhr 是否已经加载,从而使页面在用户接近底部时加载多个 xhr。
我的听众是:
$(document).scroll(function () {
if(/* scrollbar is near bottom */)
loadxhr(dat++); //function that calls jQuery.ajax()
}
});
基本上,您可以在全局范围内跟踪调用的就绪状态吗?
最佳答案
我只有一个变量(在函数之外)
var scrolling = 0;
当调用ajax函数时,检查scrolling是否等于0,否则不执行任何操作;如果相等,则设置为1,调用ajax函数,并在后者的回调中将其设置回0。
有点像抢占式多线程系统中的“锁”,只不过你在这里并不真正需要锁(这也是一件好事,因为 javascript 没有锁;-)因为你的控制线程只是当您调用 ajax 函数时中断,而不是像抢占式多线程那样在代码中的任意位置中断。
关于javascript - jQuery.ajax 检查是否已经有另一个 xhr,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3067310/