TGViewer
برنامه نویسی برنامه نویسی @rezadolati01 · 5.35K subscribers
Post #4701 173
🌐 چرا debounce و throttle از واجبات فرانت‌اند مدرن‌اند؟

🔸 اگر روی input search، resize، scroll یا mousemove کار کرده باشی، احتمالاً بدون بهینه‌سازی، ده‌ها یا صدها بار تابع اجرا می‌شود.

🔸 دو ابزار مهم:

Debounce:
صبر می‌کند تا کاربر دست از تکرار بردارد، بعد اجرا می‌کند

Throttle:
در هر بازه زمانی فقط یک‌بار اجرا می‌کند


🔸 مثال Debounce در جاوااسکریپت

function debounce(fn, delay = 300) {
let timer;

return function (...args) {
clearTimeout(timer);
timer = setTimeout(() => {
fn.apply(this, args);
}, delay);
};
}

const searchInput = document.getElementById("search");

searchInput.addEventListener(
"input",
debounce((e) => {
console.log("Searching for:", e.target.value);
}, 400)
);

🔸 کِی از کدام استفاده کنیم؟

سرچ باکس: debounce

اسکرول و ریسایز: throttle

autocomplete API: معمولاً debounce

🔸 اگر این دو را درست استفاده نکنی، هم UX خراب می‌شود هم API بی‌خود لود می‌خورد.

🆔 @rezadolati01
More from @rezadolati01
  1. Oct 15, 2026🌐 خروجی این کد جاوااسکریپت چیست؟ const obj = { name: "Ali", greet() { return this.name; }…
  2. Oct 15, 2026🌐 یک ابزار underrated برای برنامه‌نویس‌ها: 🔸 HTTPie بیشتر دولوپرها برای تست API می‌روند…
  3. Oct 15, 2026🌐 خیلی از memory leak ها در جاوااسکریپت از «کد بد» نیستند؛ از closureهای فراموش‌شده‌اند �…
  4. Oct 15, 2026🌐 کلادفلیر (Cloudflare) حالا به‌صورت پیش‌فرض جلوی AI Bot های بدون مجوز را می‌گیرد! 🔸 یک…
  5. Oct 13, 2026🌐 دانستنی فنی 🔸 عدد ۵۰۰,۰۰۰ دلار برای اصلاح یک خط کد دیتابیس! 🔸 آیا می‌دانستید در سیستم…
  6. Oct 13, 2026🌐 خروجی دقیق قطعه کد زیر در محیط استاندارد مرورگر/Node.js چیست؟ async function test() { c…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →