둘 다 빠르게 반복되는 이벤트에 대응해 함수가 실행되는 빈도를 제한하지만, 타이밍 전략이 다릅니다.
- 디바운스(Debounce): 활동이 N ms 동안 멈춘 후에만 함수를 실행합니다. 호출될 때마다 타이머를 재설정합니다. → "끝날 때까지 기다린다."
- 스로틀(Throttle): 지속적인 활동 중에 N ms마다 최대 한 번 함수를 실행합니다. → "일정한 속도로 실행한다."
text
이벤트: x x x x x x x ........ x x x
디바운스: ↑ (멈춘 후 한 번 발생)
스로틀: ↑ ↑ ↑ ↑ (주기적으로 발생)
디바운스 구현
js
() {
timer;
{
(timer);
timer = ( (...args), ms);
};
}
search = ( api.(q), );
