기타 web 개발 지식
스로틀(Throttle)과 디바운스(Debounce)
spare8433
2022. 8. 28. 17:17
단도직입적으로 말하자면 스로틀(Throttle)과 디바운스(Debounce)는 이벤트를 기반으로 실행하는 자바스크립트 특성상 이벤트(event)를 효과적으로 제어(제한)하는 방식(기술)이다.
짧은 시간 내에 반복되는 이벤트로 인한 발생하는 연산들을 제어하여 성능저하를 막고 의도한 만큼만 실행 하기 원할 때 사용한다.
디바운스(Debounce)
순차적으로 반복되는 이벤트를 그룹화하여 끝나는 시점에 실행시켜 제어하는 방식
※ 예시 : 창 크기 resize
스로틀(Throttle)
일정시간 동안 이벤트가 한번만 실행되도록 제어하는 방식
※ 예시 : 무한 스크롤링
둘의 차이점
스로틀(Throttle)과 디바운스(Debounce) 의 가장 큰 차이점은 스로틀(Throttle) 은 적어도 X 밀리 초마다 정기적으로 기능 실행을 보장 한다는 것이다.
디바운스(Debounce) 는 아무리 많은 이벤트가 발생해도 모두 무시하고 특정 시간사이에 어떤 이벤트도 발생하지 않았을 때 딱 한번만 마지막 이벤트를 발생시키는 기법입니다.
따라서 5ms 가 지나기전에 계속 이벤트가 발생할 경우 콜백에 반응하는 이벤트는 발생하지 않고 계속 무시됩니다.
출처
https://webclub.tistory.com/607