2010-06-18 133 views
0

我有一个页面,如果用户接近页面的底部,加载下一页。jQuery.ajax检查是否已经存在另一个xhr

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

我的听众是:

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

基本上,你可以跟踪通话的readyState在全球范围内?

回答

1

我只想有一个变量(函数之外)

var scrolling = 0; 

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

有点像在抢先多线程系统中的“锁定”,除非你真的不需要在这里锁定(好东西,因为JavaScript没有它们;-),因为你的控制线程是只有当你调用ajax函数时才会中断,而不是在你的代码中的任意位置,就像抢先多线程一样。

相关问题