تُعدّ أدوات معالجة أحداث اللمس والعجلة مفيدة لتتبُّع تفاعلات المستخدمين وإنشاء تجارب تنقّل مخصّصة، ولكن يمكن أن تؤخّر أيضًا التنقّل في الصفحة. في الوقت الحالي، لا يمكن للمتصفّحات معرفة ما إذا كان معالج الأحداث سيمنع التمرير، لذا تنتظر دائمًا انتهاء تنفيذ المعالج قبل تمرير الصفحة. تعمل أدوات معالجة الأحداث السلبية على حلّ هذه المشكلة من خلال السماح لك بتحديد أنّ أداة معالجة الأحداث لن تمنع التمرير أبدًا.
توافُق المتصفح
تتيح معظم المتصفحات استخدام أدوات معالجة الأحداث السلبية. توافُق المتصفّح
أسباب تعذُّر اجتياز عملية التدقيق الخاصة بأداة معالجة الأحداث السلبية في Lighthouse
تضع أداة Lighthouse علامات على أدوات معالجة الأحداث التي قد تؤخّر الانتقال في الصفحة:

تتّبع أداة Lighthouse العملية التالية لتحديد أدوات معالجة الأحداث التي قد تؤثر في أداء التمرير:
- جمع جميع أدوات معالجة الأحداث على الصفحة
- فلترة المستمعين غير التفاعليين وغير الذين يستخدمون عجلة التمرير
- فلترة المستمعين الذين يتصلون بـ
preventDefault()
- فلترة المستمعين الذين يستخدمون مضيفًا مختلفًا عن مضيف الصفحة
تستبعد Lighthouse أدوات معالجة الأحداث من مضيفين مختلفين لأنّه من المحتمل ألا يكون لديك إذن بالتحكّم في هذه النصوص البرمجية. قد تكون هناك نصوص برمجية تابعة لجهات خارجية تؤثر سلبًا في أداء التمرير على صفحتك، ولكنّها غير مُدرَجة في تقرير Lighthouse.
كيفية جعل أدوات معالجة الأحداث سلبية لتحسين أداء التمرير
أضِف علامة passive
إلى كل أداة معالجة أحداث رصدها Lighthouse.
إذا كنت تستخدم المتصفّحات التي تتوافق مع أدوات معالجة الأحداث السلبية فقط، ما عليك سوى إضافة العلامة. على سبيل المثال:
document.addEventListener('touchstart', onTouchStart, {passive: true});
إذا كنت تريد إتاحة استخدام المتصفحات القديمة التي لا تتوافق مع أدوات معالجة الأحداث السلبية، عليك استخدام ميزة رصد الميزات أو polyfill. يمكنك الاطّلاع على قسم التعرّف على الميزات في مستند شرح أدوات معالجة الأحداث السلبية الصادر عن WICG للحصول على مزيد من المعلومات.