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

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

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

عاملو الخدمات، المتاحة على نطاق واسع في المتصفحات الحالية، تقدّم بديلاً لتوفير وضع الاتصال التي وفّرتها منصّة Appcache يُرجى الاطّلاع على استراتيجيات نقل البيانات.

المخطط الزمني

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

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

الإيقاف النهائي في السياقات غير الآمنة Chrome 50 (نيسان (أبريل) 2016)
الإزالة من السياقات غير الآمنة Chrome 70 (تشرين الأول/أكتوبر 2018)
الإيقاف النهائي في السياقات الآمنة Chrome 79 (كانون الأول (ديسمبر) 2019)
تقييد نطاق Appcache Chrome 80 (شباط (فبراير) 2020)
"عكس" بدء مرحلة التجربة والتقييم Chrome 84 (تموز (يوليو) 2020)
الإزالة من السياقات الآمنة، باستثناء تلك التي تمت الموافقة على استخدامها في مرحلة التجربة والتقييم Chrome 85 (آب (أغسطس) 2020)
إكمال عملية الإزالة من السياقات الآمنة للجميع بعد إكمال مرحلة التجربة والتقييم 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.
  • جميع بيانات Appcache من خلال حقل البيان ORIGIN-TRIAL

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

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

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

توقيت النشر التجريبي لنقطة الشحن والخدمات اللوجستية

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

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

about://appcache-internals تعرض رمزًا مميّزًا معروفًا

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

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

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

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

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

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

عاملو الخدمة وAppcache حصريان

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

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

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

القصة من عدّة منصات

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

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

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

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

أوقفت Safari Appcache نهائيًا في أوائل عام 2018.

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

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

مكوّنات Android WebView

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

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

في ما يلي بعض الموارد للمطوّرين الذين ينتقلون من Appcache إلى مشغّلي الخدمات.

مقالات

الأدوات

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

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

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

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

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