مقدمة لعمال خدمة JavaScript

مقدمة لعمال خدمة JavaScript

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



هل يمكنني تسجيل مكالمة هاتفية على جهاز iPhone الخاص بي

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





من هم عمال الخدمة؟

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





يتيح لك عمال الخدمة أيضًا إضافة ميزات مثل مزامنة الخلفية لتطبيقات الويب الخاصة بك.

لماذا عمال الخدمة؟

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



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

عمال الخدمة هم المحاولة الحالية لتقليل قيود تطبيقات الويب ، دون عيوب التكنولوجيا مثل AppCache.





حالات الاستخدام للعاملين في الخدمة

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

فيما يلي بعض الميزات التي يتيحها عمال الخدمة:





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

دورة حياة عامل الخدمة

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

  1. تسجيل وتحميل العامل. تبدأ حياة عامل الخدمة عندما يقوم ملف JavaScript بتسجيله. في حالة نجاح التسجيل ، يقوم عامل الخدمة بالتنزيل ، ثم يبدأ التشغيل داخل سلسلة محادثات خاصة.
  2. عندما يتم تحميل صفحة يتحكم فيها عامل الخدمة ، يتلقى عامل الخدمة حدث 'تثبيت'. هذا هو دائمًا الحدث الأول الذي يستقبله عامل الخدمة ، ويمكنك إعداد مستمع لهذا الحدث داخل العامل. يتم استخدام حدث 'التثبيت' بشكل عام لجلب و / أو تخزين أي موارد يحتاجها عامل الخدمة.
  3. بعد انتهاء عامل الخدمة من التثبيت ، يتلقى حدث 'تنشيط'. يسمح هذا الحدث للعامل بتنظيف الموارد الزائدة التي استخدمها عمال الخدمة السابقون. إذا كنت تقوم بتحديث عامل خدمة ، فلن يتم تنشيط حدث التنشيط إلا عندما يكون القيام بذلك آمنًا. هذا مرة واحدة لا توجد صفحات محملة لا تزال تستخدم الإصدار القديم لعامل الخدمة.
  4. بعد ذلك يكون لعامل الخدمة السيطرة الكاملة على جميع الصفحات التي تم تحميلها بعد تسجيلها بنجاح.
  5. المرحلة الأخيرة من دورة الحياة هي التكرار ، والتي تحدث عند إزالة عامل الخدمة أو استبداله بإصدار أحدث.

كيفية استخدام عمال الخدمة في JavaScript

عامل الخدمة API ( MDN ) يوفر الواجهة التي تتيح لك إنشاء عمال الخدمة والتفاعل معهم في JavaScript.