
요청이 들어오면 일정시간을 기다린 후 요청을 수행하는 기법입니다.
How?
기다리는 동안 같은 요청이 들어오면 이전 요청은 취소 됩니다.
가장 마지막 요청만 호출됩니다. ( 클릭이 멈추면 실행 됩니다. )
고찰
toggle 버튼 이벤트 등에 사용하면 좋습니다.
ex)
function debounce(callback, limit = 100) {
let timeout
return function(...args) {
clearTimeout(timeout)
timeout = setTimeout(() => {
callback.apply(this, args)
}, limit)
}
}
//실행
inputDebounce.addEventListener("keyup", debounce(function() {
dispDebounce.textContent = ++debounceCount
}, 100))