قد تنشر نسخة جديدة من تطبيق PWA بينما يكتب المستخدم في نموذج مفتوح منذ الصباح. تحديث الملفات وحده لا يضمن انتقالًا سليمًا؛ قد تتعامل صفحة قديمة مع موارد أو API جديدة، أو تضيع مدخلات عند إعادة تحميل إجبارية. لذلك يحتاج تحديث Service Worker سيناريو قبول يحترم عمل المستخدم والإصدارات الموجودة.
راجع دورة العامل والصفحات المفتوحة
تشرح وثائق web.dev لدورة Service Worker مرحلة الانتظار التي تساعد على تجنب تحكم عاملين مختلفين في العملاء ضمن النطاق نفسه. كما توضح أن skipWaiting قد يجعل عاملًا جديدًا يتحكم في صفحة حُمّلت بالإصدار القديم. استخدامه قرار توافق يحتاج اختبارًا، وليس زرًا عامًا لإجبار جميع العملاء على أحدث نسخة بأمان.
ارسم قائمة بالموارد التي قد تبقى قديمة: HTML، حزم JavaScript، ملفات CSS، مخطط بيانات محلية، وعقد API. حدد مدة دعم الإصدارات السابقة وطريقة التخلص من كاش التطبيق فقط. لا تحذف كل مخازن الأصل إذا كانت تطبيقات أخرى تشترك فيه.
صمم تجربة التحديث حول العمل الجاري
| حالة العميل | ما يجب اختباره |
|---|---|
| نموذج غير محفوظ | حفظ العمل أو تأجيل التحديث برسالة واضحة |
| تبويبان بإصدار قديم | تناسق الانتقال وعدم كسر التبويب الآخر |
| عودة بعد عدة إصدارات | ترقية من النسخة الفعلية لا السابقة فقط |
| انقطاع أثناء تنزيل التحديث | بقاء نسخة صالحة وسلوك مفهوم عند المحاولة التالية |
في سيناريو افتراضي، يضيف موظف بنود عرض سعر ولم يحفظه. أظهر إشعار التحديث دون مسح النموذج، وحدد هل يدعم التطبيق حفظ مسودة أو انتظار إتمام العملية. إذا اختار المستخدم التحديث، راجع استعادة البيانات المسموح بحفظها، دون تخزين معلومات حساسة محليًا بلا سياسة واضحة.
اختبر توافق الموارد وAPI
افتح النسخة القديمة قبل النشر، ثم انشر النسخة المرشحة في بيئة اختبار واتبع سياسة التفعيل المقترحة. راقب طلبات الموارد والأخطاء والنتائج المعروضة. تغيير اسم ملف أو حذف نقطة API فورًا قد يكسر العملاء المفتوحين حتى لو اجتاز تثبيت جديد جميع الاختبارات.
كرر التجربة مع جهاز لم يفتح التطبيق منذ إصدارين أو أكثر. راجع ترحيل البيانات المحلية ومنع إعادة تطبيق خطوة غير قابلة للتكرار. لا تجعل الاختبار يمسح تخزين المتصفح في كل مرة، لأن ذلك يخفي تحديدًا مشاكل الترقية التي يواجهها المستخدم العائد.
سلّم سياسة تحديث قابلة للدعم
اكتب كيف يعرف فريق الدعم إصدار الصفحة والعامل النشط وحالة التحديث دون طلب بيانات المستخدم الشخصية. وفر رسالة خطأ واضحة وإجراء استعادة موثقًا، ولا تجعل مسح جميع بيانات المتصفح الحل الأول إذا كان سيحذف عملًا لم يرفع للخادم. اختبر كذلك الرجوع المدروس عند فشل الإصدار الجديد.
ضمن تطوير تطبيقات الويب أضف رحلة التحديث إلى التسليم، واتفق مع فريق الصيانة على دعم الإصدارات السابقة. القبول يعني أن التثبيت الجديد والمستخدم العائد وصاحب النموذج المفتوح يستطيعون إكمال عملهم وفق سياسة معلومة؛ نجاح تثبيت العامل الجديد وحده لا يثبت سلامة الانتقال.




