هذا ليس مجرد مقال آخر يحاول شرح كيف يعمل Debuce أو اختناق على مستوى الكود بدلاً من ذلك هو توضيح لتذكر المفهوم وتصوره حتى تتمكن من تطبيقها عمليًا في عملك.
شخصياً ، غالبًا ما أجد نفسي أنسى مفاهيم التعبير والخنق ، لذلك عندما يطلب مني شخص ما أن أشرحها - أو إذا ظهر سؤال في مقابلة - أنا فقط وميض؟ لتجنب ذلك ، صنعت صفحة بسيطة للمساعدة في تحديث ذاكرتي. إذا كنت لا تريد أن تشعر وكأنك متابعة دجال؟.
في codepen أدناه ، قمت بتعيين التأخير إلى ثانيتين لكل من Debounce و Throttle. حاول النقر على المواد الغذائية العشوائية وإعطاء توقف مؤقت.
فِهرِس
القياس هنا
وتخيل أن هناك ثلاثة أنواع مختلفة من النوادل في المطعم الذين يمكنهم خدمتك:
؟ النادل العادي
؟ نادل معرّف
؟ ؟ النادل المخنوق
ملاحظة: الفرق الرئيسي هو:توضيح
debouncing: انتظر النشاط (زر انقر) للتوقف لفترة محددة للتشغيل
- الاختناق: المشغلات على فترات منتظمة ، بغض النظر عن وقت إيقاف النشاط
- أيضًا 2 ثانية هو مجرد شيء استخدمته كمثال يمكن أن يكون أي timeperiod
معالجات الأحداث في JS
افتراضيًا ، ستطلق هذه المعالجات كل مرة يحدث فيها الحدث - كل ضغط مفتاح ، كل نقرة ، أو حركة تمرير.
// Basic event handler button.addEventListener('click', function() { console.log('Button clicked!'); }); // Basic keystroke handler input.addEventListener('keyup', function() { console.log('Key pressed!'); });ما هو الخطأ؟
// Basic event handler button.addEventListener('click', function() { console.log('Button clicked!'); }); // Basic keystroke handler input.addEventListener('keyup', function() { console.log('Key pressed!'); });ستقوم الوظيفة أعلاه بتنفيذ makeapicall () في كل زر انقر فوق (أي)
إذا تمكنت من الضغط عليه 10 مرات خلال 1 ثانية ، خمن ما قمت به 10 مكالمات API في 1 ثانية. هذا هو السلوك الافتراضي.
لكن إطلاق API في كل مرة لحدث ما يمكن أن يكون غير فعال ومعظم الأوقات هذا ليس ما تبحث عنه. هذا هو المكان الذي يأتي فيه الاختناق والتعبير إلى الصورة.إذا كنت تريد أن تسلب تعريفًا من هذه المقالة ، فقد يكون هذا هو.
الاختناق و debouncing هما أكثر طريقتان شيوعتين للتحكم في معدل استجابة مستمع الحدث.
debouncingاستخدم debouncing عندما تريد إجراء مكالمة API فقط إذا توقف المستخدم عن الكتابة لفترة معينة من الوقت أو توقف عن النقر لفترة معينة من الوقت.
في مثالنا إذا استمر المستخدم في النقر على الزر حتى لمدة 5 دقائق مباشرة ، سيتم إجراء مكالمة API مرة واحدة فقط.
لذلك يحدث شيئان هنا:
مثال إذا كان المستخدم يكتب لمدة دقيقة واحدة على التوالي دون توقف عن الإيقاف المؤقت لكل 2 ثانية ، فستتصل بآبار واجهة برمجة التطبيقات.
خاتمة
إذا كنت تحب المقالة اترك إبهامًا ، فسيحفزني ذلك حقًا على كتابة المزيد. شكرًا ؟.
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3