كلاهما يحد من عدد مرات تنفيذ دالة استجابةً لأحداث متكررة وسريعة — لكن باستراتيجيات توقيت مختلفة.
- Debounce: قم بتنفيذ الدالة فقط بعد توقف النشاط لمدة N ms. يعيد تعيين المؤقت في كل استدعاء. → "انتظر حتى ينتهوا."
- Throttle: قم بتنفيذ الدالة بحد أقصى مرة واحدة كل N ms أثناء النشاط المستمر. → "قم بالتشغيل بمعدل ثابت."
text
events: x x x x x x x ........ x x x
debounce: ↑ (fires once, after the pause)
throttle: ↑ ↑ ↑ ↑ (fires periodically)
تنفيذ Debounce
js
() {
timer;
{
(timer);
timer = ( (...args), ms);
};
}
search = ( api.(q), );
