đĸ Debounce āĻļāĻŋāĻā§āύ: āĻāύāĻĒā§āĻā§ āĻŦāĻžāϰāĻŦāĻžāϰ API āĻāϞ āĻĨāĻžāĻŽāĻžāύ
āĻ āύā§āĻ āϏāĻŽā§ āϏāĻžāϰā§āĻ āĻŦāĻā§āϏ⧠āĻāĻžāĻāĻĒ āĻāϰāϞā§āĻ āĻŦāĻžāϰāĻŦāĻžāϰ API āĻāϞ āĻšāĻā§āĻā§, āĻĢāϞ⧠āϞā§āϝāĻžāĻ, āĻāϰāĻ āĻāϰ āĻā§āϞ āϰā§āĻāĻžāϞā§āĻā§āϰ āĻāĻžāĻĒ āĻĒā§ā§ đĩđĢāĨ¤ āĻāĻ āϏāĻŽāϏā§āϝāĻžāϰ āϏāĻŦāĻā§ā§ā§ āĻāĻžāĻā§āϰ āϏāĻŽāĻžāϧāĻžāύ āĻšāϞ⧠debounce āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻžāĨ¤
â āĻā§āĻāĻžāĻŦā§ āĻāϰāĻŦā§āύ
1. “āĻāĻžāĻāĻĒ āĻĨāĻžāĻŽāĻžāϰ” āĻĒāϰ āĻāĻŋāĻā§āĻā§āώāĻŖ āĻ āĻĒā§āĻā§āώāĻž āĻāϰ⧠āϤāĻžāϰāĻĒāϰ āĻāĻžāĻ āĻāĻžāϞāĻžāύ
2. āύāϤā§āύ āĻāϰ⧠āĻāĻŦāĻžāϰ āĻāĻžāĻāĻĒ āĻšāϞ⧠āĻāĻā§āϰ āĻ āĻĒā§āĻā§āώāĻž āĻŦāĻžāϤāĻŋāϞ āĻāϰā§āύ
3. Search/resize/scroll āĻāϰ āĻŽāϤ⧠āĻāĻā§āύā§āĻā§ debounce āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§āύ
āĻā§āĻŦ āĻā§āĻ āĻāĻĻāĻžāĻšāϰāĻŖ (plain JS):
function debounce(fn, wait){
let t;
return function(...args){
clearTimeout(t);
t = setTimeout(() => fn(...args), wait);
};
}
const onType = debounce((text) => fetchData(text), 300);
// input.addEventListener("input", e => onType(e.target.value));
â ī¸ āϏāϤāϰā§āĻāϤāĻž
wait āϏāĻŽā§ āĻā§āĻŦ āĻāĻŽ āĻšāϞ⧠āϤāĻŦā§āĻ āĻŦā§āĻļāĻŋ āĻāϞ āĻšāĻŦā§, āĻā§āĻŦ āĻŦā§āĻļāĻŋ āĻšāϞ⧠UI āϧā§āϰ āϞāĻžāĻāĻŦā§āĨ¤ 200–500ms āϏāĻžāϧāĻžāϰāĻŖāϤ āĻā§āϰāĻžāĻ āĻāϰ⧠āĻĻā§āĻā§āύāĨ¤ āĻāĻāĻžā§āĻž, āĻĻā§āϰā§āϤ āĻāĻžāύāĻž āϰāĻŋāĻā§ā§ā§āϏā§āĻā§ “āĻļā§āώ āĻāĻžāĻāĻĒ”āĻāĻžāĻ āϝā§āύ āĻĢāϞāĻžāĻĢāϞ āĻĻā§āĻāĻžā§ āϏā§āĻāĻžāĻ āĻā§ā§āĻžāϞ āĻāϰāĻŦā§āύ âŗđ§
āĻāĻĒāύāĻŋ āĻā§āύ āĻāĻžā§āĻāĻžā§ debounce āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§āύ—search, chat, āύāĻžāĻāĻŋ scroll? āĻāĻŽā§āύā§āĻā§ āĻŦāϞā§āύ đ
#javascript #debounce #frontend #performance
āĻ āύā§āĻ āϏāĻŽā§ āϏāĻžāϰā§āĻ āĻŦāĻā§āϏ⧠āĻāĻžāĻāĻĒ āĻāϰāϞā§āĻ āĻŦāĻžāϰāĻŦāĻžāϰ API āĻāϞ āĻšāĻā§āĻā§, āĻĢāϞ⧠āϞā§āϝāĻžāĻ, āĻāϰāĻ āĻāϰ āĻā§āϞ āϰā§āĻāĻžāϞā§āĻā§āϰ āĻāĻžāĻĒ āĻĒā§ā§ đĩđĢāĨ¤ āĻāĻ āϏāĻŽāϏā§āϝāĻžāϰ āϏāĻŦāĻā§ā§ā§ āĻāĻžāĻā§āϰ āϏāĻŽāĻžāϧāĻžāύ āĻšāϞ⧠debounce āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻžāĨ¤
â āĻā§āĻāĻžāĻŦā§ āĻāϰāĻŦā§āύ
1. “āĻāĻžāĻāĻĒ āĻĨāĻžāĻŽāĻžāϰ” āĻĒāϰ āĻāĻŋāĻā§āĻā§āώāĻŖ āĻ āĻĒā§āĻā§āώāĻž āĻāϰ⧠āϤāĻžāϰāĻĒāϰ āĻāĻžāĻ āĻāĻžāϞāĻžāύ
2. āύāϤā§āύ āĻāϰ⧠āĻāĻŦāĻžāϰ āĻāĻžāĻāĻĒ āĻšāϞ⧠āĻāĻā§āϰ āĻ āĻĒā§āĻā§āώāĻž āĻŦāĻžāϤāĻŋāϞ āĻāϰā§āύ
3. Search/resize/scroll āĻāϰ āĻŽāϤ⧠āĻāĻā§āύā§āĻā§ debounce āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§āύ
āĻā§āĻŦ āĻā§āĻ āĻāĻĻāĻžāĻšāϰāĻŖ (plain JS):
function debounce(fn, wait){
let t;
return function(...args){
clearTimeout(t);
t = setTimeout(() => fn(...args), wait);
};
}
const onType = debounce((text) => fetchData(text), 300);
// input.addEventListener("input", e => onType(e.target.value));
â ī¸ āϏāϤāϰā§āĻāϤāĻž
wait āϏāĻŽā§ āĻā§āĻŦ āĻāĻŽ āĻšāϞ⧠āϤāĻŦā§āĻ āĻŦā§āĻļāĻŋ āĻāϞ āĻšāĻŦā§, āĻā§āĻŦ āĻŦā§āĻļāĻŋ āĻšāϞ⧠UI āϧā§āϰ āϞāĻžāĻāĻŦā§āĨ¤ 200–500ms āϏāĻžāϧāĻžāϰāĻŖāϤ āĻā§āϰāĻžāĻ āĻāϰ⧠āĻĻā§āĻā§āύāĨ¤ āĻāĻāĻžā§āĻž, āĻĻā§āϰā§āϤ āĻāĻžāύāĻž āϰāĻŋāĻā§ā§ā§āϏā§āĻā§ “āĻļā§āώ āĻāĻžāĻāĻĒ”āĻāĻžāĻ āϝā§āύ āĻĢāϞāĻžāĻĢāϞ āĻĻā§āĻāĻžā§ āϏā§āĻāĻžāĻ āĻā§ā§āĻžāϞ āĻāϰāĻŦā§āύ âŗđ§
āĻāĻĒāύāĻŋ āĻā§āύ āĻāĻžā§āĻāĻžā§ debounce āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§āύ—search, chat, āύāĻžāĻāĻŋ scroll? āĻāĻŽā§āύā§āĻā§ āĻŦāϞā§āύ đ
#javascript #debounce #frontend #performance
đĸ Debounce āĻļāĻŋāĻā§āύ: āĻāύāĻĒā§āĻā§ āĻŦāĻžāϰāĻŦāĻžāϰ API āĻāϞ āĻĨāĻžāĻŽāĻžāύ
āĻ
āύā§āĻ āϏāĻŽā§ āϏāĻžāϰā§āĻ āĻŦāĻā§āϏ⧠āĻāĻžāĻāĻĒ āĻāϰāϞā§āĻ āĻŦāĻžāϰāĻŦāĻžāϰ API āĻāϞ āĻšāĻā§āĻā§, āĻĢāϞ⧠āϞā§āϝāĻžāĻ, āĻāϰāĻ āĻāϰ āĻā§āϞ āϰā§āĻāĻžāϞā§āĻā§āϰ āĻāĻžāĻĒ āĻĒā§ā§ đĩđĢāĨ¤ āĻāĻ āϏāĻŽāϏā§āϝāĻžāϰ āϏāĻŦāĻā§ā§ā§ āĻāĻžāĻā§āϰ āϏāĻŽāĻžāϧāĻžāύ āĻšāϞ⧠debounce āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻžāĨ¤
â
āĻā§āĻāĻžāĻŦā§ āĻāϰāĻŦā§āύ
1. “āĻāĻžāĻāĻĒ āĻĨāĻžāĻŽāĻžāϰ” āĻĒāϰ āĻāĻŋāĻā§āĻā§āώāĻŖ āĻ
āĻĒā§āĻā§āώāĻž āĻāϰ⧠āϤāĻžāϰāĻĒāϰ āĻāĻžāĻ āĻāĻžāϞāĻžāύ
2. āύāϤā§āύ āĻāϰ⧠āĻāĻŦāĻžāϰ āĻāĻžāĻāĻĒ āĻšāϞ⧠āĻāĻā§āϰ āĻ
āĻĒā§āĻā§āώāĻž āĻŦāĻžāϤāĻŋāϞ āĻāϰā§āύ
3. Search/resize/scroll āĻāϰ āĻŽāϤ⧠āĻāĻā§āύā§āĻā§ debounce āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§āύ
āĻā§āĻŦ āĻā§āĻ āĻāĻĻāĻžāĻšāϰāĻŖ (plain JS):
function debounce(fn, wait){
let t;
return function(...args){
clearTimeout(t);
t = setTimeout(() => fn(...args), wait);
};
}
const onType = debounce((text) => fetchData(text), 300);
// input.addEventListener("input", e => onType(e.target.value));
â ī¸ āϏāϤāϰā§āĻāϤāĻž
wait āϏāĻŽā§ āĻā§āĻŦ āĻāĻŽ āĻšāϞ⧠āϤāĻŦā§āĻ āĻŦā§āĻļāĻŋ āĻāϞ āĻšāĻŦā§, āĻā§āĻŦ āĻŦā§āĻļāĻŋ āĻšāϞ⧠UI āϧā§āϰ āϞāĻžāĻāĻŦā§āĨ¤ 200–500ms āϏāĻžāϧāĻžāϰāĻŖāϤ āĻā§āϰāĻžāĻ āĻāϰ⧠āĻĻā§āĻā§āύāĨ¤ āĻāĻāĻžā§āĻž, āĻĻā§āϰā§āϤ āĻāĻžāύāĻž āϰāĻŋāĻā§ā§ā§āϏā§āĻā§ “āĻļā§āώ āĻāĻžāĻāĻĒ”āĻāĻžāĻ āϝā§āύ āĻĢāϞāĻžāĻĢāϞ āĻĻā§āĻāĻžā§ āϏā§āĻāĻžāĻ āĻā§ā§āĻžāϞ āĻāϰāĻŦā§āύ âŗđ§
āĻāĻĒāύāĻŋ āĻā§āύ āĻāĻžā§āĻāĻžā§ debounce āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§āύ—search, chat, āύāĻžāĻāĻŋ scroll? āĻāĻŽā§āύā§āĻā§ āĻŦāϞā§āύ đ
#javascript #debounce #frontend #performance