2012-08-17 8 views

답변

14

throttle debounce function을 사용하면 초당 스크롤 이벤트를 제한 할 수 있습니다.

function debounce(method, delay) { 
    clearTimeout(method._tId); 
    method._tId= setTimeout(function(){ 
     method(); 
    }, delay); 
} 

$(window).scroll(function() { 
    debounce(handleScroll, 100); 
}); 

이 각 호출 사이에 최소 100ms로는 handleScroll에 거기에 있는지 확인 (또는은, 즉, 그것은 초당 대부분 10 시간이라고).


것은 zzzzBov는 Zakas은 스로틀 기능이 실제로 디 바운스 함수로 설명 무엇을 지적. 차이점은 디 바운스가 불필요한 스크롤 이벤트를 버리는 반면 스로틀 기능은 나중에 처리되도록 (최대 속도로) 큐에 대기시켜야한다는 것입니다.

스크롤 이벤트의 경우 실제 스로틀 링을 원하지 않습니다.

+3

그건 실제로 [디 바운싱] (http://davidwalsh.name/function-debounce)입니다. 이것은 조절과 약간 다릅니다. – zzzzBov

+0

@zzzzBov : 네가 맞아, 고마워. – PPvG