Debouncing
NOTE
Debouncingμ μ΄λ²€νΈκ° λ°μν λλ§λ€ μ¦μ μ²λ¦¬λ₯Ό νμ§ μκ³ , μΌμ μκ° λμ μ΄λ²€νΈκ° λ°μνμ§ μμΌλ©΄ κ·ΈλμμΌ ν¨μλ₯Ό μ€ννλ λ°©μμ λλ€. μλ₯Ό λ€μ΄, μ¬μ©μκ° κ²μμ°½μ ν μ€νΈλ₯Ό μ λ ₯ν λ,
keyup
μ΄λ²€νΈλ§λ€ μλ²μ API μμ²μ 보λ΄λ κ² λμ , μ λ ₯μ΄ λ©μΆ ν μΌμ μκ° λμ κΈ°λ€λ Έλ€κ° μλ² μμ²μ 보λ΄λ λ°©μμ λλ€.
-
λμ μ리: μ΄λ²€νΈκ° μ°μμ μΌλ‘ λ°μνλ λμ, μ΄μ νΈμΆμ μ·¨μλκ³ μΌμ μκ°μ΄ μ§λ ν λ§μ§λ§ νΈμΆλ§ μ€νλ©λλ€.
-
μ¬μ© μμ:
-
μ¬μ©μκ° ν μ€νΈ μ λ ₯ νλμ νμ΄νν λλ§λ€ μλ²λ‘ API νΈμΆμ 보λ΄μ§ μλλ‘ ν¨
-
μλμ° ν¬κΈ° λ³κ²½, μ€ν¬λ‘€ μ΄λ²€νΈ λ±μμ κ³Όλν κ³μ°μ νΌνκΈ° μν΄ μ¬μ©
-
function debounce(func, delay) {
let timer;
return function(...args) {
clearTimeout(timer);
timer = setTimeout(() => {
func(...args);
}, delay);
};
}
document.getElementById('searchInput').addEventListener('input', debounce(function() {
console.log('κ²μμ΄:', this.value);
}, 500));