- Throttle와 Debounce는 자주 사용 되는 이벤트나 함수 들의 실행되는 빈도를 줄여서, 성능 상의 유리함을 가져오기 위한 개념이다.
- Throttle는 입력 주기를 방해하지 않고, 일정 시간 동안의 입력을 모아서, 한번씩 출력을 제한한다.
- Debounce는 입력 주기가 끝나면, 출력한다.
Throttle
- Throttle는 여러번 발생하는 이벤트를 일정 시간 동안, 한번만 실행 되도록 만드는 개념이다.
- Debounce와 다른 점은 이벤트 발생 시간 이후에 일정 시간동안만을 기다리고, 이벤트를 실행 후 재차 기다린다는 점이다.
Debounce
- Debounce는 여러번 발생하는 이벤트에서, 가장 마지막 이벤트만을 실행되도록 만드는 개념이다.
- Throttle과 다른점은, 마지막 이벤트에서 일정 시간동안 이벤트가 발생한다면, 또 일정 시간을 기다린다는 점이다.
Throttle과 Debounce의 차이점
- Throttle과 Debounce의 차이점은 이벤트를 언제 발생시킬지 시점의 차이다.
- Debounce는 입력이 끝날때까지 무한적으로 기다리지만, Throttle는 입력이 시작되면, 일정 주기로 계속 실행한다.
- Debounce의 시간을 짧게 가져간다면, Throttle과 비슷한 효과가 날 수 있지만, 그럼에도 시점에서 차이가 날 수 있다.
- 때문에, 작업물의 성격에 따라 사용방법이 달라질 수 있다.
참조: Throttle 와 Debounce 개념 정리하기