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

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

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

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

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

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

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

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

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

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

للمشاركة في تجربة المصدر "العكسية"، اتّبِع الخطوات التالية:

  1. طلب رمز مميز للمصدر
  2. أضِف الرمز المميّز إلى صفحات HTML. يمكنك إجراء ذلك بطريقتَين:
    • أضِف علامة origin-trial <meta> إلى رأس كل صفحة. على سبيل المثال: <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 والرمز المميّز.)

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

يجب ربط الرمز المميّز للتجربة الأصلية نفسها بما يلي:

  • جميع صفحات HTML التي تستخدم AppCache
  • جميع بيانات AppCache من خلال حقل البيان ORIGIN-TRIAL.

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

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

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

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

على الرغم من أنّ التجربة الأصلية "العكسية" تبدأ رسميًا مع الإصدار 84 من Chrome، يمكنك الاشتراك في التجربة الأصلية اليوم وإضافة الرموز المميزة إلى ملفات 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.

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

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

لا يمكن استخدام Service Worker وAppCache معًا

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

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

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

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

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

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

أوقفت متصفّح Firefox نهائيًا ميزة AppCache في الإصدار 44 (سبتمبر 2015)، كما أزالت إمكانية استخدامها في إصدارَي Beta وNightly اعتبارًا من سبتمبر 2019.

متصفّح Safari على أجهزة iOS وmacOS

تم إيقاف AppCache نهائيًا في متصفّح Safari في أوائل عام 2018.

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

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

‫Android WebViews

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

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

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

المقالات

الأدوات

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

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

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

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

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