تأخير النقر 300 ملّي ثانية، تم الإيقاف

على مدار سنوات عديدة، كانت المتصفّحات المتوافقة مع الأجهزة الجوّالة تطبّق تأخيرًا يتراوح بين 300 و350 مللي ثانية بين touchend وclick أثناء انتظارها لمعرفة ما إذا كان سيتم النقر مرّتين أم لا، لأنّ النقر مرّتين كان إيماءة للتكبير في النص.

منذ الإصدار الأول من Chrome لأجهزة Android، تمت إزالة هذا التأخير في حال إيقاف ميزة التصغير/التكبير بإصبعَين أيضًا. ومع ذلك، فإنّ ميزة التصغير/التكبير بإصبعَين هي ميزة مهمة لتسهيل الاستخدام. منذ إصدار Chrome 32 (في عام 2014)، تم إيقاف هذا التأخير في المواقع الإلكترونية المحسَّنة للأجهزة الجوّالة، بدون إزالة ميزة التصغير/التكبير باستخدام إصبعَين. واتّبع Firefox وIE/Edge الإجراء نفسه بعد ذلك بوقت قصير، وفي آذار (مارس) 2016، تم طرح حلّ مشابه في الإصدار 9.3 من نظام التشغيل iOS.

هناك فرق كبير في الأداء.

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

لإزالة تأخُّر النقر الذي يتراوح بين 300 و350 ملي ثانية، ما عليك سوى إجراء ما يلي في <head> صفحتك:

<meta name="viewport" content="width=device-width">

يؤدي ذلك إلى ضبط عرض إطار العرض على القيمة نفسها للجهاز، وهو من أفضل الممارسات بشكل عام للمواقع الإلكترونية المحسّنة للأجهزة الجوّالة. باستخدام هذه العلامة، تفترض المتصفّحات أنّك جعلت النص مقروءًا على الأجهزة الجوّالة، ويتم إيقاف ميزة النقر مرّتين للتكبير/التصغير لصالح النقرات الأسرع.

إذا لم تتمكّن من إجراء هذا التغيير لسبب ما، يمكنك استخدام touch-action: manipulation لتحقيق التأثير نفسه على مستوى الصفحة أو على عناصر معيّنة:

html {
    touch-action: manipulation;
}

لا تتوفّر هذه التقنية في Safari، لذا يُفضّل استخدام علامة إطار العرض.

هل يشكّل فقدان ميزة النقر مرّتين للتكبير/التصغير مشكلة في تسهيل الاستخدام؟

لا، سيظل بإمكانك استخدام ميزة التصغير/التكبير بإصبعَين، كما أنّ ميزات نظام التشغيل تراعي المستخدمين الذين يجدون صعوبة في استخدام هذه الإيماءة. على أجهزة Android، يمكنك استخدام إيماءات التكبير/التصغير. تعمل أدوات مثل هذه خارج المتصفّح.

ماذا عن المتصفّحات القديمة؟

يستخدم FastClick من FT Labs أحداث اللمس لتشغيل النقرات بشكل أسرع ويزيل إيماءة النقر مرّتين. ويفحص هذا المقياس مقدار تنقّل إصبعك بين touchstart وtouchend للتمييز بين التمريرات والنقرات.

تؤثر إضافة مستمع touchstart إلى كل شيء في الأداء، لأنّ التفاعلات من المستوى الأدنى، مثل الانتقال للأعلى أو للأسفل، تتأخّر من خلال استدعاء المستمع لمعرفة ما إذا كان event.preventDefault(). لحسن الحظ، سيتجنّب FastClick ضبط المستمعِين في الحالات التي يزيل فيها المتصفّح التأخير الذي يبلغ 300 ملي ثانية، ما يتيح لك الاستفادة من مزايا كلتا الطريقتَين.