نظرة عامة على مشغّل الخدمات

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

للاطّلاع على قائمة حالية بمشغّلي الخدمات، أدخِل chrome://serviceworker-internals/ في شريط العناوين.

قائمة عاملة قيد التشغيل.

ما الذي يقدّمه عاملو الخدمة؟

عاملو الخدمة هم أصول متخصصّة في JavaScript تعمل كخوادم وكيلة بين متصفِّحات الويب وخوادم الويب. إنها تهدف إلى تحسين الموثوقية من خلال توفير الوصول بلا اتصال بالإنترنت، بالإضافة إلى تعزيز أداء الصفحة.

دورة حياة تشبه التطبيق ويتطورها تدريجيًا

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

يعمل عاملو الخدمة على تحسين المواقع الإلكترونية تدريجيًا خلال دورة حياة مشابهة للتطبيقات الخاصة بالنظام الأساسي. فكر فيما يحدث عند تثبيت تطبيق محلي من متجر تطبيقات:

  • يتم تقديم طلب لتنزيل التطبيق.
  • عمليات تنزيل التطبيق وتثبيته
  • التطبيق جاهز للاستخدام ويمكن تشغيله.
  • تحديثات التطبيق للإصدارات الجديدة

تُعد دورة حياة عامل الخدمة متشابهة، ولكن بنهج التحسين التدريجي. في أول زيارة إلى صفحة ويب يتم فيها تثبيت مشغّل خدمات جديد، تقدّم الزيارة الأولية للصفحة وظائفها الأساسية بينما يتم تنزيل مشغّل الخدمة. بعد تثبيت مشغّل الخدمات وتفعيله، يتحكم في الصفحة لتقديم موثوقية وسرعة محسَّنة.

الوصول إلى واجهة برمجة تطبيقات للتخزين المؤقت استنادًا إلى JavaScript

تشكّل واجهة Cache أحد الجوانب التي لا غنى عنها في تقنية مشغّل الخدمات، وهي آلية تخزين مؤقت منفصلة تمامًا عن ذاكرة التخزين المؤقت لبروتوكول HTTP. يمكن الوصول إلى واجهة Cache ضمن نطاق مشغّل الخدمات وفي نطاق سلسلة التعليمات الرئيسية. ويتيح ذلك الكثير من الاحتمالات للتفاعلات التي تعتمد على المستخدم باستخدام مثيل Cache.

تتأثر ذاكرة التخزين المؤقت لبروتوكول HTTP من خلال توجيهات التخزين المؤقت المحدّدة في عناوين HTTP، إلا أنّ واجهة Cache قابلة للبرمجة من خلال JavaScript. وهذا يعني أن التخزين المؤقت للاستجابات لطلبات الشبكة يمكن أن يستند إلى المنطق الأفضل لموقع ويب معين. مثلاً:

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

كل واحدة من هذه الخيارات هي مثال على استراتيجية تخزين مؤقت. تساعد استراتيجيات التخزين المؤقت على إتاحة تجارب الاستخدام في وضع عدم الاتصال، ويمكنها تقديم أداء أفضل من خلال تنفيذ خطوات فحص بدء ذاكرة التخزين المؤقت لـ HTTP. قبل الاطّلاع على Workbox، ستتم مراجعة بعض استراتيجيات التخزين المؤقت والرموز البرمجية التي تساهم في نجاحها.

واجهة برمجة تطبيقات غير متزامنة وقائمة على الأحداث

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

يمكن تسجيل الفعاليات باستخدام addEventListener API مألوفة. من المحتمل أن تتفاعل كل هذه الأحداث مع واجهة "Cache". وبشكلٍ خاص، من الأهمية بمكان أن تتمكن من تنفيذ عمليات معاودة الاتصال عند إرسال طلبات الشبكة من أجل تحقيق الموثوقية والسرعة المطلوبة.

يتطلب تنفيذ عمل غير متزامن بلغة JavaScript استخدام الوعود. وبما أنّ الوعود تدعم أيضًا async وawait، يمكن أيضًا استخدام ميزات JavaScript هذه لتبسيط رمز مشغّل الخدمات (وWorkbox!) لتقديم تجربة أفضل للمطوّرين.

التخزين المؤقت والتخزين المؤقت لوقت التشغيل

يتضمّن التفاعل بين مشغّل الخدمات ومثيل Cache مفهومَين مختلفَين للتخزين المؤقت: التخزين المؤقت والتخزين المؤقت وقت التشغيل. فكل من هذه الأمور له دور أساسي في الفوائد التي يمكن أن يقدمها عامل الخدمات.

التخزين المؤقت هي عملية التخزين المؤقت للأصول بشكل مسبق، عادةً أثناء تثبيت مشغّل الخدمات. من خلال التخزين المُسبَق، يمكن تنزيل مواد العرض الثابتة والمواد اللازمة للوصول بلا اتصال بالإنترنت وتخزينها في مثيل Cache. ويساهم هذا النوع من التخزين المؤقت أيضًا في تحسين سرعة الصفحات على الصفحات اللاحقة التي تتطلب مواد العرض المخزّنة مؤقتًا.

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

عند الجمع بين هذه المناهج والمرتبطة باستخدام واجهة Cache في مشغّل الخدمات، توفّر هذه الطُرق فائدة هائلة لتجربة المستخدم، وتوفِّر سلوكيات شبيهة بالتطبيق لصفحات الويب العادية.

العزل عن سلسلة التعليمات الرئيسية

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

يشبه مشغّلو الخدمة عاملي الويب في أنّ جميع الأعمال التي يؤدونها تتم على سلاسل المحادثات الخاصة بهم. وهذا يعني أنّ مهام مشغّلي الخدمات لن تتنافس لجذب الانتباه مع المهام الأخرى في سلسلة التعليمات الرئيسية. عاملو الخدمة هم المستخدم في المقام الأول من حيث التصميم!

الطريق إلى الأمام

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