it-swarm.asia

كيف يمكنك التعامل مع زر "إلغاء"؟

أنا بصدد إنشاء نموذج آخر حاليًا ، وكالعادة ، لست متأكدًا من الطريقة التي يتم بها تنفيذ زر "إلغاء" (أو "رجوع") بجوار "إرسال" ، والذي يتيح للمستخدم نسيان هذا النموذج والعودة إلى صفحة القائمة.

من الواضح أن هناك العديد من الطرق: يمكنك إما استخدام زر بسيط أو رابط (أو أي علامة بعلامة onclick والتصميم ، لهذه المسألة) ، ويمكن للجميع استخدام JavaScript للعودة في السجل أو ببساطة انتقل إلى رابط معين.

لكل طريقة مزاياه: يسمح الزر back() بالانتقال مباشرة إلى حيث كان المستخدم (في الصفحة الثالثة من القائمة مرتبة حسب الاسم ، على سبيل المثال) ، ولكن قد ينبثق نافذة "تأكيد إعادة الإرسال". من ناحية أخرى ، يكون الانتقال إلى بعض عناوين url "أكثر نظافة" ، ولكنه يعني إما الانتقال إلى عنوان عام (الصفحة الأولى من القائمة ، والفرز الافتراضي) ، أو الحفاظ على عنوان url السابق كمعلمة مخفية ، إذا أراد أحد الانتقال إلى نفس الصفحة (الصفحة الثالثة مرتبة حسب الاسم).

كيف يا رفاق التعامل مع هذا؟ عادةً ما أستخدم حل history.back() ، لأنه في حالتي يقوم بالخدعة ، لكن قد يكون هناك بعض عيوب هذه الطريقة.

1
Wookai

يعد استخدام JavaScript فقط لهذا حلًا سيئًا لأنه يحرم المستخدمين دون تمكين JavaScript. يجب أن تعمل JavaScript دائمًا على تعزيز الحل ، وليس ذلك. (انظر التحسين التدريجي ).

إذا ضغط المستخدم على زر "إلغاء" ، فيجب أن يعرف البرنامج النصي الخاص بالخادم مكان إرجاعه إليه. إذا كانت هذه الصفحة تتطلب تقديم نموذج ، فأنت بحاجة إلى إعادة صياغة موقعك بحيث يستخدم عمليات إعادة التوجيه بعد إرسال النماذج لمنع إعادة إرسال النماذج في هذه الحالات. (يطلق عليه POST/Redirect/GET ).

يمكنك بعد ذلك استخدام جافا سكريبت لتحسين ذلك للمستخدمين الذين تم تشغيل JavaScript لجعله أسرع (مثل الحصول على محتويات الصفحة السابقة باستخدام Ajax وإعادة تشغيلها).

1
John Conde

بالنسبة إلى النماذج أحادية المرحلة ، يمكنني استخدام رابط. يمكنك الحصول على عنوان URL الذي أتى به المستخدم من استخدام REFERER الرأس والرابط "إلغاء" لتلك الصفحة. إذا كان النموذج متعدد المراحل ، في المرحلة الأولى ، قم بتعيين ملف تعريف ارتباط باستخدام عنوان URL الخاص بالمرجع واستخدمه لرابط "إلغاء".

ومع ذلك ، مع نموذج متعدد المراحل ، يمكنك تخزين بيانات جزئية في قاعدة البيانات. في هذه الحالة ، من المفيد استخدام زر ، والذي يقدم نوعًا ما من المعرف ويمكنه حذف تلك البيانات قبل إعادة التوجيه إلى مكان المستخدم. (على الرغم من أنك تحتاج إلى حذف البيانات بشكل دوري على أي حال في حالة إغلاق المستخدم لمتصفحه.)

كما أشار John Conde ، عند تقديم النموذج ، يجب عليك استخدام إعادة توجيه لتجنب مشكلة POSTDATA.

1
DisgruntledGoat

علاوة على نصيحة @ JohnConde's و DisgruntledGoat (التي تعتبر سليمة) ، أقترح عرض مقاطع مختصرة أو ما شابه لتوفير قسم "رابط خلفي" مفيد (يمكن أيضًا إنشاء جانب الخادم بواسطة المرجع (r) إيه).

إنه يلغي الغموض الذي يكتنف غرض "الرجوع" ، حيث كان لدى المستخدم أدنى فكرة مرئية (عادة أعلى من الشكل) عن المكان الذي يعتقد النظام فيه (لكن في الممارسة العملية لا يتوقع منهم استخدام الروابط الفعلية هناك). POST/Redirect/GET يوقف كسر زر الرجوع ، ويعزز هذا السلوك على جميع المستويات.

تتمثل الطريقة المتنافسة لهذا التصميم ، والتي يتم استخدامها في مواقع أكثر تساهلاً وتلك التي يتردد عليها "مستخدمو الطاقة" ، في تمكين المستخدمين من خلال الروابط (أو عناصر واجهة مستخدم Ajax) التي تتيح لهم التعامل مع النظام وإزالة مفهوم "الرجوع" (على الرغم من عدم إزالة ميزات مثل التراجع).

خلاصة القول هي أنك (بغض النظر عن الحالات النادرة) تريد إما احتضان "العودة" أو إزالة الحاجة إليها. تركه في طي النسيان يمكن أن يخيف المستخدمين عندما يتفاعل بطرق غير متوقعة.

1
Metalshark