jQuery.ajax检查是否已经有另一个xhr

时间:2010-06-18 05:05:29

标签: javascript ajax jquery

我有一个页面,如果用户在页面底部附近,则加载下一页。

我最近刚将其切换为jQuery,现在使用jQuery.ajax()函数来获取数据。但是,现在我无法检查xhr是否已经加载,当用户靠近底部时,页面加载多个xhrs。

我的听众是:

$(document).scroll(function () {
            if(/* scrollbar is near bottom */)
            loadxhr(dat++); //function that calls jQuery.ajax()
        }
});

基本上,您可以在全局范围内跟踪调用的readyState吗?

2 个答案:

答案 0 :(得分:1)

我只有一个变量(在函数外面)

var scrolling = 0;

当调用ajax函数时,检查滚动是否等于0,否则什么也不做;如果它相等,则将其设置为1,调用ajax函数,并在后者的回调中将其设置为0。

有点像抢先式多线程系统中的“锁定”,除了你真的不需要锁定(好东西,因为javascript没有它们;-)因为你的控制线程只是在调用ajax函数时中断,而不是在代码中的任意位置,如抢占式多线程。

答案 1 :(得分:1)

也许可以查看.ajaxStart().ajaxStop(),了解在通话过程中会通知您的事件?