단도직입적으로 말하자면 스로틀(Throttle)과 디바운스(Debounce)는 이벤트를 기반으로 실행하는 자바스크립트 특성상 이벤트(event)를 효과적으로 제어(제한)하는 방식(기술)이다.
짧은 시간 내에 반복되는 이벤트로 인한 발생하는 연산들을 제어하여 성능저하를 막고 의도한 만큼만 실행 하기 원할 때 사용한다.
디바운스(Debounce)
순차적으로 반복되는 이벤트를 그룹화하여 끝나는 시점에 실행시켜 제어하는 방식
※ 예시 : 창 크기 resize
스로틀(Throttle)
일정시간 동안 이벤트가 한번만 실행되도록 제어하는 방식
※ 예시 : 무한 스크롤링
둘의 차이점
스로틀(Throttle)과 디바운스(Debounce) 의 가장 큰 차이점은 스로틀(Throttle) 은 적어도 X 밀리 초마다 정기적으로 기능 실행을 보장 한다는 것이다.
디바운스(Debounce) 는 아무리 많은 이벤트가 발생해도 모두 무시하고 특정 시간사이에 어떤 이벤트도 발생하지 않았을 때 딱 한번만 마지막 이벤트를 발생시키는 기법입니다.
따라서 5ms 가 지나기전에 계속 이벤트가 발생할 경우 콜백에 반응하는 이벤트는 발생하지 않고 계속 무시됩니다.
출처
https://webclub.tistory.com/607
'기타 web 개발 지식' 카테고리의 다른 글
줄 바꿈 형식 CR? LF? CRLF? (0) | 2023.06.08 |
---|---|
SVG 의 이해 및 배치 관련 내용 (0) | 2023.04.18 |
ESLint 와 prettier (0) | 2022.09.02 |
MPA 와 SPA , SSR 와 CSR (0) | 2022.08.28 |
환경변수 (0) | 2022.02.13 |