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