2010-06-18 5 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; 

시간이 스크롤이 0에 해당하고, 그렇지 않으면 아무것도 할 수없는 경우, 아약스 함수를 호출 확인하기 위해 오는

; 그것이 같으면 1로 설정하고, ajax 함수를 호출하고, 후자의 콜백에서 다시 0으로 설정하십시오.

선점 형 멀티 스레딩 시스템에서 "잠금"과 동등하지만, 여기에 자물쇠가 필요 없다는 점을 제외하고는 (자바 스크립트 이후에도 좋은 점이 있습니다 ;-) 제어 스레드가 선점 형 멀티 스레딩과 같이 코드에서 임의의 위치가 아닌 ajax 함수를 호출 할 때만 중단됩니다.

1

전화가 걸려 왔을 때 알려주는 이벤트에 대해 .ajaxStart().ajaxStop()을 체크 아웃 할 수 있습니까?

관련 문제