استخدام واجهة برمجة تطبيقات التوجيه الثابت لمشغّل الخدمات لتجاوز مشغّل الخدمات لمسارات معيّنة

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

استخدام واجهة برمجة التطبيقات

لاستخدام طلب البيانات من واجهة برمجة التطبيقات، استخدِم حدث event.addRoutes في عامل الخدمة install. مرِّر إلى هذه الطريقة قائمة مسارات تتضمّن السمات التالية:

condition
تحدّد هذه السمة وقت تطبيق القاعدة. تقبل هذه السمة الخصائص التالية:
  • urlPattern: مثيل URLPattern أو سلسلة تمثّل URLPattern صالحًا يمكن تمريره إلى الدالة الإنشائية URLPattern.
  • requestMethod: سلسلة تحتوي على طريقة طلب.
  • requestMode: سلسلة تحتوي على وضع الطلب.
  • requestDestination: سلسلة تتضمّن وجهة الطلب.
  • runningStatus: سلسلة، إما "running" أو "not-running". تشير هذه السمة إلى حالة تشغيل عامل الخدمة.
source
تحدّد هذه السمة كيفية تحميل الموارد التي تتطابق مع condition. إحدى السلاسل التالية:
  • "network"
  • "cache"
  • "fetch-event"
  • "race-network-and-fetch-handler"

في المثال التالي، يتم توجيه عناوين URL التي تبدأ بـ "/articles" إلى عامل الخدمة إذا كان قيد التشغيل حاليًا. في حال توفّر شروط متعددة، مثل urlPattern وrunningStatus، يجب استيفاء جميع الشروط لاستخدام المسار.

addEventListener('install', (>event) = {
  event.addRoutes({
    condition: {

          urlPattern: "/articles/*",
          runningStatus: "running"
    },
    source: "fetch-event"
  });
});

في المثال التالي، يتم إرسال المشاركات إلى نموذج مباشرةً إلى الشبكة وتجاوز عامل الخدمة.

addEventListener('install', (>event) = {
  event.addRoutes({
    condition: {
          urlPattern: "/form/*",
          requestMethod: "post"
    },
    source: "network"
  });
});

في المثال التالي، يتم استخدام مساحة تخزين ذاكرة التخزين المؤقت المسماة "pictures" لجلب الملفات التي تحمل امتداد الملف .png أو .jpg.

addEventListener('install', (>event) = {
  event.addRoutes({
    condition: {
      or: [
        {urlPattern: "*.png"},
        {urlPattern: "*.jpg"}
      ]
    },
    source: {
      cacheName: "pictures"
    }
  });
});

التغييرات منذ بدء مرحلة التجربة

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

تستفيد واجهة برمجة التطبيقات الجديدة أيضًا من التغييرات التي تم إجراؤها على URLPattern في الإصدار 121 من Chrome، وتتيح تحديد طريقة الطلب والوضع والوجهة، كما تضيف خيارات مصدر إضافية.

التوافق مع "أدوات مطوّري البرامج في Chrome"

يتم عرض قواعد الموجّه المسجّلة في علامة التبويب Service Worker في لوحة التطبيق.

قواعد الموجه المميّزة في لوحة "التطبيق"

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

رقم تعريف جهاز التوجيه كما هو معروض في لوحة "الشبكة"