디바운싱은 짧은 시간 동안 이벤트가 여러 번 발생해도 마지막 이벤트만 실행되도록 조절하는 기법입니다.
주로 검색창 입력, 윈도우 리사이즈 이벤트 등에서 불필요한 API 호출을 줄이기 위해 사용됩니다.
function debounce(func, delay) {
let timeoutId;
return function(...args) {
clearTimeout(timeoutId);
timeoutId = setTimeout(() => {
func.apply(this, args);
}, delay);
};
}
// 사용 예제: 검색창 입력 이벤트 디바운싱 적용
const searchInput = document.getElementById('searchInput');
searchInput.addEventListener('input', debounce((event) => {
console.log('Search query:', event.target.value);
}, 500));