سؤال

أقوم بإجراء متصفح مربع التحديد وأتساءل عما إذا كان من الأفضل إجراء إعادة توجيه جافا سكريبت أو إرسال نموذج وإعادة التوجيه من هناك.إيجابيات وسلبيات كل منها؟

هل كانت مفيدة؟

المحلول

إعادة توجيه HTTP:

  • الايجابيات:يمكنك تسجيل نشاط المستخدم.
  • سلبيات:دورة تحول إضافية واحدة حتى تتم إعادة توجيه المستخدم بشكل فعال.

إعادة توجيه جافا سكريبت:

  • الايجابيات:تتم إعادة توجيه المستخدم على الفور
  • سلبيات:لا يمكنك تسجيل نشاط المستخدم، إلا إذا كنت تستخدم AJAX؛إذا قام المستخدم بتعطيل JavaScript فلن تتم إعادة توجيهه.

في هذه الحالة، أنا أميل إلى استخدام جافا سكريبت غير مزعجة لحل هذه المشكلة:رمز كما لو لم يتم تمكين JavaScript (أي.زر "انتقال" الذي ينشر النموذج)؛بعد ذلك، بعد تحميل الصفحة، ستقوم Javascript بإخفاء هذا الزر وإضافة وظيفة التغيير إلى مربع التحديد وإرسال طلب AJAX لتسجيل النشاط.

بهذه الطريقة تحصل على أفضل ما في العالمين :)

نصائح أخرى

إذا كنت تقصد شيئًا مثل التنقل عن طريق تحديد عنصر من القائمة، فيمكنك القيام بالأمرين معًا:

  • قم بتكوين النموذج باستخدام GET، الذي يشير مباشرة إلى الصفحة المستهدفة.
  • إذا كان js مدعومًا، فاطلب استدعاء "إرسال" عند تحديد القيمة.إذا لم يكن هناك دعم لـ js، فيجب عرض زر تحديد/انتقال/فتح، مما يسمح للمستخدم بمواصلة العمل مع التطبيق

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

كن حذرا عند القيام بشيء من هذا القبيل:

<select id="test" onchange="doAction();">
  <option value='http://...'>...</option>
  <option value='http://...'>...</option>
  <option value='http://...'>...</option>
  <option value='http://...'>...</option>
</select>

<script type="text/javascript">
function doACtion() {
    window.location = document.getElementById('test');
}
</script>

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

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top