التخزين المؤقت لوقت التشغيل باستخدام Workbox

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

ومن أمثلة ذاكرة التخزين المؤقت HTTP في المتصفح مثال على التخزين المؤقت في وقت التشغيل؛ تتم تعبئته فقط بعد تقديم طلب لعنوان URL معيّن. لكن عاملي الخدمة يتيحون لك تنفيذ التخزين المؤقت في وقت التشغيل الذي يزيد عن ما يمكن أن تقدّمه ذاكرة التخزين المؤقت HTTP وحدها

الحصول على استراتيجية

على عكس الإعداد المسبق (الذي يحاول دائمًا لتقديم مجموعة من الملفات المحددة مسبقًا من ذاكرة التخزين المؤقت)، يمكن أن يجمع التخزين المؤقت في بيئة التشغيل الشبكة وذاكرة التخزين المؤقت بعدة طرق. يتم إنشاء كل نسخة بشكل عام باسم استراتيجية التخزين المؤقت. تشمل استراتيجيات التخزين المؤقت الرئيسية ما يلي:

  • الأولوية للشبكة
  • ذاكرة التخزين المؤقت أولاً
  • بيانات قديمة أثناء إعادة التحقّق

الأولوية للشبكة

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

مخطّط يوضّح طلب انتقال الصفحة إلى مشغّل الخدمات ومن مشغّل الخدمات إلى الشبكة. يتعذّر طلب الشبكة، وبالتالي يتم نقل الطلب إلى ذاكرة التخزين المؤقت.

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

ذاكرة التخزين المؤقت أولاً

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

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

مخطّط بياني يعرض الطلب الذي ينتقل من الصفحة إلى مشغّل الخدمات ومن مشغّل الخدمات إلى ذاكرة التخزين المؤقت يتعذّر طلب ذاكرة التخزين المؤقت، وبالتالي يتم نقل الطلب إلى الشبكة.

بيانات قديمة أثناء إعادة التحقّق

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

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

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

لماذا عليك استخدام Workbox؟

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

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

ما هي الاستراتيجيات التي يجب استخدامها في ذاكرة التخزين المؤقت من مواد العرض؟

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

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

استخدام "القديم أثناء إعادة التحقق" لمنح الأولوية للموثوقية على الحداثة

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

استخدام الشبكة أولاً لإعطاء الأولوية للحداثة على الموثوقية

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

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

استخدام ذاكرة التخزين المؤقت أولاً لعناوين URL ذات النُسخ المختلفة

في استراتيجية التخزين المؤقت أولاً، لا يتم تحديث الإدخال مطلقًا بعد تخزينه مؤقتًا. لذلك السبب، فتأكد من أنك تستخدمه فقط مع الأصول التي تعرف أنه من غير المحتمل التغيير. وعلى وجه الخصوص، إنّها أكثر ملاءمة لعناوين URL التي تتضمّن نُسخًا مختلفة — هو نفس النوع من عناوين URL التي يجب عرضها أيضًا باستخدام علامة عنوان استجابة Cache-Control: max-age=31536000.