1. مرحبًا
في هذا المختبر، ستضيف تطبيق ويب حالي إلى استجابة مسار البث لتحسين الأداء. هذا هو السابع في سلسلة من دروس البرمجة المصاحبة لورشة عمل تطبيقات الويب التقدّمية. كانت ورشة الترميز السابقة بعنوان تعزيز إمكانات تطبيق الويب التقدّمي. يتضمّن هذا المسار درسًا تطبيقيًا آخر.
أهداف الدورة التعليمية
- إضافة استجابة بث إلى عامل الخدمة
ما يتعين عليك معرفته
- JavaScript
المتطلبات
- متصفّح متوافق مع مشغّلي الخدمات وعمليات البث
2. إكمال الإعداد
ابدأ إما باستنساخ الرمز الأولي أو تنزيله لإكمال هذا الدرس التطبيقي حول الترميز:
إذا نسخت المستودع، تأكَّد من أنّك تستخدم الفرع pwa06--service-worker-includes
. يحتوي ملف ZIP أيضًا على الرمز الخاص بهذا الفرع.
يتطلّب هذا الرمز الأساسي الإصدار 14 من Node.js أو إصدارًا أحدث. بعد توفّر الرمز، شغِّل npm ci
من سطر الأوامر في مجلد الرمز لتثبيت جميع الملفات التابعة التي ستحتاج إليها. بعد ذلك، شغِّل npm start
لبدء خادم التطوير الخاص بتجربة البرمجة.
يقدّم ملف README.md
لرمز المصدر شرحًا لجميع الملفات الموزّعة. بالإضافة إلى ذلك، إليك الملفات الرئيسية الحالية التي ستعمل عليها خلال هذا الدرس العملي:
الملفات الرئيسية
js/preview.js
: معاينة ملف JavaScript الخاص بالصفحة-
service-worker.js
: ملف مشغّل الخدمات لتطبيق الويب التقدّمي
3- معاينة البث
يمكن تقسيم صفحة المعاينة إلى ثلاثة أجزاء واضحة: العنوان والنص الأساسي المجمَّع والتذييل. في الوقت الحالي، يتم عرض النص الأساسي المجمَّع من جهة العميل، ولكن ليس هناك سبب لذلك. لننقله إلى Service Worker.
من أجل تجميع نص الرسالة، يتم البحث عن المحتوى بشكل غير متزامن. بما أنّ العمل غير المتزامن في ردّ التنقّل مكلف، فإنّ هذه فرصة رائعة لبث المحتوى المعروف إلى المتصفّح أولاً.
لإجراء ذلك، عليك أولاً محو المحتوى في js/preview.js
للتأكّد من أنّه لم يعُد يجمع المعلومات. بعد ذلك، في service-worker.js
، نفِّذ ما يلي:
- استيراد العنصر المصدَّر المُسمّى
strategy
منworkbox-streams
باسمstreamsStrategy
- استيراد التصدير المُسمّى
openDB
منidb
واستيراد التصدير المُسمّىmarked
منmarked
- قبل تسجيل المسار لعمليات التنقّل، أضِف تسجيل مسار جديدًا
- يجب أن يتحقّق من أنّ
pathname
عنوان URL هو/preview
- يجب أن تستخدم استراتيجية بث
- الردّ باستخدام محتوى
preview/index.html
من خلال منطقة المحتوى في العلامةmain
- أجب بدالة تفتح
settings-store
IndexedDB، وتحصل على المحتوى من مخزن عناصرsettings
، وتعرض نسخة من المحتوى بتنسيق Markdown. - أضِف علامات الإغلاق
main
وbody
وhtml
.
- الردّ باستخدام محتوى
- يجب أن يتحقّق من أنّ
بعد إعداد الردود المتدفّقة، ارجع وافتح معاينة الموقع الإلكتروني في المتصفّح. من المفترض أن يظهر لك أنّ محتوى الصفحة يتم عرضه الآن مباشرةً من مشغّل الخدمات، بدون الحاجة إلى أي رمز من جهة العميل.
4. تهانينا!
لقد تعلّمت كيفية إتاحة تطبيق الويب بلا إنترنت باستخدام عاملي الخدمة وواجهة برمجة التطبيقات الخاصة بمساحة التخزين المؤقت.
إنّ الدرس العملي التالي في السلسلة هو العمل مع العاملين.