إضافات Chrome الظريفة التي لا تُبطئ متصفحك
لإضافات المتصفح الزخرفية سمعة، وهي مستحقة في معظمها: ثقيلة، وثرثارة، وتُثبَّت بقائمة أذونات لم يقرأها أحد. وهذا مؤسف، لأن هذه الفئة ممتعة حقًا وكل مشكلة فيها يمكن تجنبها.
ثلاثة أمور تستحق التحقق
- قائمة الأذونات. يعرضها Chrome قبل التثبيت. storage تعني ملف تفضيلات لا أكثر. أما tabs وcookies وhistory وwebRequest فهي الأذونات التي تتيح لإضافة ما مراقبة تصفّحك.
- هل تلمس تخطيط صفحتك. الإضافة التي تُدرج عناصر داخل تدفّق المستند، أو تقيس مواضع العناصر عند كل حدث تمرير، قادرة على جعل صفحة سلسة تتقطّع مهما كان القليل الذي ترسمه.
- إلى أين ترسل طلباتها. الزخرفة التي يعجّ تبويب الشبكة الخاص بها بالنشاط تؤدي عملًا ثانيًا لم يُخبرك أحد به.
لماذا التخطيط هو ما يعضّ
قراءة خاصية تخطيط — ارتفاع عنصر، أو موضعه على الشاشة — تُجبر المتصفح على إنهاء أي عمل تخطيط معلّق قبل أن يستطيع الإجابة. افعل ذلك داخل معالج تمرير، وتكون قد طلبت من المتصفح أن يتوقف ويقيس ستين مرة في الثانية، على صفحة كان في منتصف رسمها.
هذه هي الآلية وراء معظم شكاوى «هذه الإضافة تجعل التمرير بطيئًا»، وهي غير مرئية إلى أن يقيسها أحد. والحل غير لافت: لا تقرأ التخطيط أبدًا أثناء التمرير، اكتب فقط خاصية transform، ودع المُركِّب يتولى الحركة.
كيف يبدو ذلك هنا
scrolldog حيوان أليف صغير بالبكسل يركض على طول حافة كل صفحة بسرعة تمريرك. وهو أيضًا مثال عملي على الفحوصات أعلاه، لأنه كان عليه أن يجتازها ليكون مُحتملًا للعيش معه:
- إذنان فقط: storage وunlimitedStorage. لا tabs، ولا cookies، ولا history، ولا webRequest.
- إذن مضيف واحد — api.scroll.dog — يُستخدم للتحقق من الترخيص، لا للمس الصفحة التي أنت عليها أبدًا.
- يعيش الحيوان في مسار ثابت بحجم صفري، ولا يكتب سوى خاصية transform، فلا يتغيّر تخطيط صفحتك أبدًا.
- يُستمع إلى التمرير بشكل غير مُعطِّل، وتُختزل كل الأحداث إلى كتابة واحدة في كل إطار حركة.
- مفتاح واحد يزيله من كل تبويب مفتوح فورًا.
لا شيء من هذا تفاخر — إنه الحد الأدنى. شيء وظيفته الوحيدة أن يكون لطيفًا للنظر إليه لا مبرر له كي يجعل أي شيء أبطأ.
شاهد الكلب