جارٍ التحضير لإزالة Appcache

يزيل الإصدار 85 من Chrome دعم Appcache تلقائيًا. على معظم المطوّرين نقل بياناتهم من AppCache الآن وعدم الانتظار أكثر من ذلك.

في إطار متابعة الإعلانات السابقة، ستتم إزالة AppCache من Chrome والمتصفّحات الأخرى المستندة إلى Chromium. ونحن ننصح مطوّري البرامج بالنقل خارج ذاكرة التخزين المؤقت للتطبيق الآن، بدلاً من الانتظار أكثر من ذلك.

إنّ مشغّلي الخدمات الذين يعتمدون على نطاق واسع في المتصفّحات الحالية، يقدّمون بديلاً لتوفير تجربة الاستخدام بلا اتصال بالإنترنت التي وفّرتها Appcache. اطّلِع على استراتيجيات نقل البيانات.

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

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

إيقاف نهائي في السياقات غير الآمنة Chrome 50 (نيسان (أبريل) 2016)
الإزالة من السياقات غير الآمنة Chrome 70 (تشرين الأول/أكتوبر 2018)
الإيقاف النهائي في السياقات الآمنة الإصدار 79 من Chrome (كانون الأول/ديسمبر 2019)
تقييد نطاق AppCache الإصدار 80 من Chrome (شباط/فبراير 2020)
بدء مرحلة التجربة والتقييم لميزة "عكس" الإصدار 84 من Chrome (تموز/يوليو 2020)
الإزالة من السياقات الآمنة، باستثناء السياقات التي تم تفعيل مرحلة التجربة والتقييم فيها الإصدار 85 من Chrome (آب/أغسطس 2020)
الإزالة الكاملة من السياقات الآمنة للجميع، مع إكمال مرحلة تقييم وتجربة FLEDGE 5 تشرين الأول (أكتوبر) 2021 (إصدار Chrome 95 تقريبًا)

مرحلة التجربة والتقييم

يسرد المخطط الزمني معالم رئيسية قادمة للإزالة. بدءًا من الإصدار 85 من Chrome، لن تكون Appcache متاحة في Chrome تلقائيًا بعد الآن. يمكن للمطوّرين الذين يحتاجون إلى وقت إضافي لنقل البيانات خارج Appcache الاشتراك في فترة تجريبية للمصدر "العكسي" لتوسيع مدى توفّر Appcache لتطبيقات الويب. ستبدأ مرحلة التجربة والتقييم في Chrome 84 (قبل الإزالة التلقائية في Chrome 85)، وستظل نشطة حتى 5 تشرين الأول (أكتوبر) 2021 (حوالي Chrome 95). وفي هذه المرحلة، ستتم إزالة AppCache بالكامل للجميع، حتى المستخدمين الذين اشتركوا في الفترة التجريبية الأصلية.

للمشاركة في مرحلة التجربة والتقييم "العكسي":

  1. اطلب رمزًا مميّزًا من المصدر.
  2. أضِف الرمز المميّز إلى صفحات HTML. هناك طريقتان لإجراء ذلك:
    • أضِف علامة <meta> لبرامج origin-trial في رأس كل صفحة. على سبيل المثال: <meta http-equiv="origin-trial" content="TOKEN_GOES_HERE">
    • بدلاً من ذلك، يمكنك ضبط خادمك لعرض استجابات تحتوي على رأس HTTP‏ Origin-Trial. من المفترض أن يظهر عنوان الاستجابة الناتج على النحو التالي: Origin-Trial: TOKEN_GOES_HERE
  3. أضِف الرمز المميّز نفسه إلى بيانات Appcache. يمكنك إجراء ذلك من خلال حقل جديد في ملف البيان، باستخدام التنسيق التالي:
ORIGIN-TRIAL:
TOKEN_GOES_HERE

(يجب أن يكون هناك سطر جديد بين ORIGIN-TRIAL ورمزك المميّز.)

يمكنك الاطّلاع على نموذج مشروع مضمّن أدناه يوضّح إضافة الرموز المميّزة الصحيحة لإصدار الإصدار التجريبي من التطبيق في كلّ من الملفَين index.html وmanifest.appcache.

لماذا يجب استخدام الرموز المميّزة في أماكن متعدّدة؟

يجب ربط الرمز المميّز نفسه الخاص بمراحل التجربة والتقييم بما يلي:

  • جميع صفحات HTML التي تستخدم ذاكرة التخزين المؤقت للتطبيقات
  • جميع ملفات بيان AppCache من خلال حقل البيان ORIGIN-TRIAL

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

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

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

توقيت نشر الإصدار التجريبي من Origin وعملياته اللوجستية

على الرغم من أنّ الفترة التجريبية "العكسية" للإصدار الأول ستبدأ رسميًا مع الإصدار 84 من Chrome، يمكنك الاشتراك في الفترة التجريبية للإصدار الأول اليوم وإضافة الرموز إلى ملفات بيان HTML وAppCache. عندما ينتقل جمهور تطبيق الويب تدريجيًا إلى الإصدار 84 من Chrome، ستصبح أيّ رموز مميّزة سبق لك إضافتها سارية.

بعد إضافة رمز مميّز إلى ملف بيان AppCache، انتقِل إلى about://appcache-internals للتأكّد من أنّ نسخة Chrome المحلية (الإصدار 84 أو الإصدارات الأحدث) قد ربطت بشكل صحيح الرمز المميّز لإصدار الإصدار التجريبي من التطبيق الأصلي بإدخالات ملف البيان المخزّنة مؤقتًا. إذا تم التعرّف على الفترة التجريبية الأصلية، من المفترض أن يظهر لك حقل يحتوي على Token Expires: Tue Apr 06 2021... في تلك الصفحة، مرتبطًا ببيان التطبيق:

واجهة about://appcache-internals تعرِض رمزًا مميّزًا تم التعرّف عليه

الاختبار قبل الإزالة

ننصحك بشدة بنقل بياناتك إلى ذاكرة التخزين المؤقت للتطبيقات في أقرب وقت ممكن. إذا كنت تريد اختبار إزالة AppCache من تطبيقات الويب، استخدِم about://flags/#app-cache العلامة لمحاكاة عملية إزالتها. تتوفّر هذه الميزة التجريبية اعتبارًا من الإصدار 84 من Chrome.

استراتيجيات نقل البيانات

توفّر مشغّلات الخدمات، التي تتوفّر على نطاق واسع في المتصفّحات الحالية، بديلاً لتجربة الاستخدام بلا إنترنت التي يوفّرها AppCache.

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

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

لا يمكن استخدام مشغِّلي الخدمات وAppCache معًا

أثناء العمل على استراتيجية نقل البيانات، يُرجى العِلم أنّ Chrome سيوقف وظيفة AppCache على أي صفحة يتم تحميلها تحت تحكّم مشغّل خدمات. بعبارة أخرى، بعد نشر مشغّل خدمات يتحكّم في صفحة معيّنة، لن تتمكّن من استخدام AppCache في تلك الصفحة.

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

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

قصة الإصدار على عدّة منصات

ننصحك بالتواصل مع مورّد متصفّح معيّن إذا أردت الحصول على مزيد من المعلومات حول خططه لإزالة AppCache.

Firefox على جميع الأنظمة الأساسية

أوقف Firefox استخدام ذاكرة التخزين المؤقت للتطبيقات في الإصدار 44 (أيلول/سبتمبر 2015)، وأزال إمكانية استخدامها في الإصدارَين التجريبي والإصدار Nightly اعتبارًا من أيلول (سبتمبر) 2019.

Safari على نظامي التشغيل iOS وmacOS

أوقف متصفّح Safari واجهة برمجة التطبيقات AppCache نهائيًا في أوائل عام 2018.

‏متصفح Chrome على الأجهزة التي تعمل بنظام iOS‬

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

WebViews في Android

يستخدم بعض مطوّري تطبيقات Android WebView من Chrome لعرض محتوى الويب، وقد يستخدمون أيضًا AppCache. ولا يمكن تفعيل مرحلة التجربة والتقييم في WebView. في ضوء ذلك، سيتيح Chrome WebView استخدام AppCache بدون فترة تجريبية حتى تتم عملية الإزالة النهائية، والتي من المتوقّع أن تتم في الإصدار 90 من Chrome.

مزيد من المعلومات

في ما يلي بعض المراجع للمطوّرين الذين ينقلون بياناتهم من AppCache إلى مهام الخدمة.

مقالات

الأدوات

الحصول على المساعدة

إذا واجهت مشكلة عند استخدام أداة معيّنة، يمكنك الإبلاغ عن مشكلة في مستودع GitHub الخاص بها.

يمكنك طرح سؤال عام حول إيقاف استخدام AppCache على Stack Overflow باستخدام العلامة html5-appcache.

إذا واجهت خطأً متعلقًا بإزالة ذاكرة تخزين التطبيق من Chrome، يُرجى الإبلاغ عنه باستخدام أداة تتبُّع مشاكل Chromium.

الصورة الرئيسية المستندة إلى أرشيف مؤسسة سميثسونيان، رقم الطلب: ‎11-007، العلبة 020، الصورة رقم MNH-4477.