Debounce가 이벤트를 그룹화하여 특정 시간이 지난 후 하나의 이벤트만 발생하도록 하는 기술이라면,
Throttle은 이벤트를 일정한 주기마다 발생하도록 하는 기술이다.
Debounce ⇒ 아무리 많은 이벤트가 발생해도 무시하고 특정 시간사이에 어떤 이벤트도 발생하지 않았을 때 딱 한번만 마지막 이벤트를 발생시킨다.
Throttle ⇒ 설정 시간마다 정기적으로 기능을 실행시킨다. (몇초마다 또는 몇 밀리세컨드 마다)
예를 들어 Throttle의 설정시간으로 1ms(밀리세컨드)를 주게되면 해당 이벤트는 1ms 동안 최대 1번만 발생하게 된다. 특징 자체가 실행 횟수에 제한을 거는 것이기 때문에 성능 문제를 해결하기 위해 사용한다.
ex)
scroll 이벤트가 발생할 때 어떤 작업이 실행되도록 했다면, 매우 빈번하게 실행되기 때문에 큰 버퍼링이 걸릴 수 있는데, 이럴 경우 Throttle을 사용한다면 몇 초에 한번 또는 몇 밀리세컨드에 한 번 씩만 실행되게 제한을 걸 수 있다.
Throttle 사용 예시