Chrome 85 به طور پیش فرض پشتیبانی از AppCache را حذف می کند. اکثر توسعه دهندگان باید اکنون 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، AppCache دیگر به طور پیش فرض در Chrome در دسترس نخواهد بود. توسعه دهندگانی که به زمان بیشتری برای خروج از AppCache نیاز دارند، می توانند برای یک آزمایش اولیه "معکوس" ثبت نام کنند تا در دسترس بودن AppCache برای برنامه های وب خود را افزایش دهند. نسخه آزمایشی اصلی در Chrome 84 (پیش از حذف پیشفرض در Chrome 85) شروع میشود و تا 5 اکتبر 2021 (تقریباً Chrome 95) فعال خواهد بود. در آن مرحله، AppCache به طور کامل برای همه، حتی کسانی که برای آزمایش اولیه ثبت نام کرده بودند، حذف خواهد شد.
برای شرکت در کارآزمایی مبدا "معکوس":
- برای مبدا خود یک نشانه درخواست کنید .
- توکن را به صفحات HTML خود اضافه کنید. دو راه برای انجام آن وجود دارد:
- یک تگ
origin-trial
<meta>
به سر هر صفحه اضافه کنید. برای مثال:<meta http-equiv="origin-trial" content="TOKEN_GOES_HERE">
- از طرف دیگر، سرور خود را طوری پیکربندی کنید که پاسخ های حاوی سرصفحه
Origin-Trial
HTTP را برگرداند. سرصفحه پاسخ حاصل باید چیزی شبیه به این باشد:Origin-Trial: TOKEN_GOES_HERE
- یک تگ
- همان نشانه را به مانیفست 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 بارگیری کنند. با شروع Chrome 85، آنها طوری رفتار خواهند کرد که گویی AppCache وجود ندارد.
افزودن نشانه آزمایشی مبدا به مانیفست های AppCache نشان می دهد که هر مانیفست هنوز معتبر است. با شروع Chrome 85، هر مانیفست که فیلد ORIGIN-TRIAL
نداشته باشد به عنوان نادرست تلقی میشود و قوانین داخل مانیفست نادیده گرفته میشوند.
زمان بندی و تدارکات استقرار آزمایشی مبدا
در حالی که آزمایش اولیه "معکوس" به طور رسمی با Chrome 84 شروع می شود، می توانید امروز برای نسخه آزمایشی اصلی ثبت نام کنید و نشانه ها را به مانیفست های HTML و AppCache خود اضافه کنید. همانطور که مخاطبان برنامه وب شما به تدریج به Chrome 84 ارتقا مییابند، هر توکنی که قبلاً اضافه کردهاید اعمال میشود.
هنگامی که یک نشانه به مانیفست AppCache خود اضافه کردید، about://appcache-internals
دیدن کنید تا تأیید کنید که نمونه محلی Chrome شما (نسخه 84 یا جدیدتر) به درستی کد آزمایشی مبدا را با ورودیهای حافظه پنهان مانیفست شما مرتبط کرده است. اگر نسخه آزمایشی اصلی شما شناسایی شود، باید فیلدی را ببینید که Token Expires: Tue Apr 06 2021...
در آن صفحه، مرتبط با مانیفست شما:
تست قبل از حذف
ما قویاً شما را تشویق می کنیم که در اسرع وقت از 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 کسب کنید، به شما توصیه میکنیم که با یک فروشنده مرورگر خاص پیگیری کنید.
فایرفاکس در تمامی پلتفرم ها
فایرفاکس AppCache را در نسخه 44 (سپتامبر 2015) منسوخ کرد و از سپتامبر 2019 پشتیبانی از آن را در نسخههای بتا و شبانه خود حذف کرد .
سافاری در iOS و macOS
سافاری AppCache را در اوایل سال 2018 منسوخ کرد .
کروم در iOS
Chrome برای iOS یک مورد خاص است، زیرا از موتور مرورگر متفاوتی نسبت به Chrome در سایر سیستم عامل ها استفاده می کند: WKWebView . کارکنان سرویس در حال حاضر در برنامههای iOS با استفاده از WKWebView پشتیبانی نمیشوند و اعلامیه حذف AppCache Chrome در دسترس بودن AppCache در Chrome برای iOS را پوشش نمیدهد. اگر می دانید که برنامه وب شما دارای کروم قابل توجهی برای مخاطبان iOS است، لطفاً این را در نظر داشته باشید.
وبنماهای اندروید
برخی از توسعه دهندگان برنامه های Android از Chrome WebView برای نمایش محتوای وب استفاده می کنند و همچنین ممکن است از AppCache استفاده کنند. با این حال، امکان فعال کردن آزمایش اولیه برای WebView وجود ندارد. با توجه به آن، Chrome WebView از AppCache بدون نسخه آزمایشی اصلی تا زمانی که حذف نهایی انجام شود، که در Chrome 90 انتظار میرود، پشتیبانی میکند.
بیشتر بدانید
در اینجا برخی از منابع برای توسعه دهندگانی است که از AppCache به کارگران خدمات مهاجرت می کنند.
مقالات
ابزار
کمک گرفتن
اگر با استفاده از یک ابزار خاص به مشکلی برخوردید، مشکلی را در مخزن GitHub آن باز کنید.
میتوانید با استفاده از تگ html5-appcache
، یک سؤال کلی در مورد مهاجرت به AppCache در Stack Overflow بپرسید.
اگر با باگ مربوط به حذف AppCache Chrome مواجه شدید، لطفاً آن را با استفاده از ردیاب مشکل Chromium گزارش دهید .
تصویر قهرمان بر اساس آرشیو موسسه اسمیتسونیان، Acc. 11-007، جعبه 020، شماره تصویر MNH-4477 .