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

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

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

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

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

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

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

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

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

يدرج الجدول الزمني اثنين من المعالم الرئيسية القادمة للإزالة. وبدءًا من الإصدار 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 خاصة بك لأنّها تحتاج إلى ربط رمز مميّز بكل بيان من بيانات AppCache أيضًا.

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

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

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

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

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

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

إجراء الاختبارات قبل إزالة المحتوى

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

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

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

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

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

عاملو الخدمة وAppcache مقتصران على بعضهما البعض

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

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

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

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

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

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

أوقِف Firefox أداة AppCache، وذلك في الإصدار 44 (أيلول (سبتمبر) 2015)، وأزال الدعم الخاص به في إصدارَيه التجريبي والليلي اعتبارًا من أيلول (سبتمبر) 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 إلى مشغِّلي الخدمات.

مقالات

الأدوات

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

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

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

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

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