سؤال

أبحث عن طرق لتحسين صفحة ويب تبدأ مهمة خادم طويلة الأمد (> 2 دقيقة). الإصدار الحالي من الصفحة فقط على مدار المدة الكاملة للمهمة ، والتي يمكن أن تكون محبطة للغاية للمستخدم.

لدي بالفعل بعض الأفكار حول كيفية تحسين تجربة المستخدم ، لكنها جميعها ستشمل استخدام أياكس إلى حد ما. بسبب التجارب السابقة التي مررت بها في هذا المشروع ، أعرف أنه ليس كل المستخدمين قد تم تمكينهم أو متاحين JavaScript.

على افتراض أن عملية جانب الخادم قد تم تحسينها بالفعل قدر الإمكان ، ما الذي يمكنني فعله لتحسين تجربة الكل المستخدمين قدر الإمكان؟

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

المحلول

انقل عملية الخادم الطويلة المدى خارج نطاق النطاق.

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

بالنسبة للمستخدمين الذين لديهم تمكين JavaScript ، يمكنك إعداد مؤقت للتحقق من حالة المهمة عبر Ajax وتنبيههم عند الانتهاء من المهمة.

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

نصائح أخرى

  • إنشاء جدول في قاعدة البيانات (أو كائن في الذاكرة)
  • المهمة طويلة الأمد ستقوم بتحديث التقدم المحرز في هذا الجدول (كائن)
  • ستعرض صفحة الويب بيانات من هذا الجدول (أو الكائن). كيفية تحديث الصفحة - إنه اختيارك.
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top