Persiapan untuk penghapusan AppCache

Chrome 85 menghapus dukungan untuk AppCache secara default. Sebagian besar developer sebaiknya bermigrasi dari AppCache sekarang, dan tidak menunggu lebih lama.

Sebagai tindak lanjut dari pengumuman sebelumnya, dukungan untuk AppCache akan dihapus dari Chrome dan browser berbasis Chromium lainnya. Sebaiknya developer bermigrasi dari AppCache sekarang, daripada menunggu lebih lama.

Pekerja layanan, yang didukung secara luas di browser saat ini, menawarkan alternatif untuk memberikan pengalaman offline yang ditawarkan AppCache. Lihat Strategi migrasi.

Linimasa

Perubahan terbaru pada jadwal rilis Chrome berarti waktu beberapa langkah ini dapat bervariasi. Kami akan berupaya untuk terus memperbarui linimasa ini, tetapi pada tahap ini, migrasikan dari AppCache sesegera mungkin, bukan menunggu pencapaian tertentu.

Fitur "tidak digunakan lagi" masih ada, tetapi mencatat pesan peringatan yang tidak menganjurkan penggunaannya. Fitur "dihapus" tidak lagi ada di browser.

Penghentian penggunaan dalam konteks yang tidak aman Chrome 50 (April 2016)
Penghapusan dari konteks yang tidak aman Chrome 70 (Oktober 2018)
Penghentian penggunaan dalam konteks aman Chrome 79 (Desember 2019)
Pembatasan cakupan AppCache Chrome 80 (Februari 2020)
Uji coba origin "Reverse" dimulai Chrome 84 (Juli 2020)
Penghapusan dari konteks aman, kecuali untuk situs yang memilih ikut serta dalam uji coba origin Chrome 85 (Agustus 2020)
Penghapusan lengkap dari konteks aman untuk semua orang, dengan penyelesaian uji coba origin 5 Oktober 2021 (sekitar Chrome 95)

Uji coba origin

Linimasa mencantumkan dua pencapaian mendatang untuk penghapusan. Mulai Chrome 85, AppCache tidak akan tersedia lagi di Chrome secara default. Developer yang memerlukan waktu tambahan untuk bermigrasi dari AppCache dapat mendaftar ke uji coba origin "terbalik" guna memperpanjang ketersediaan AppCache untuk aplikasi web mereka. Uji coba origin akan dimulai pada Chrome 84 (sebelum penghapusan default di Chrome 85), dan akan aktif hingga 5 Oktober 2021 (sekitar Chrome 95). Pada saat itu, AppCache akan dihapus sepenuhnya untuk semua orang, bahkan mereka yang telah mendaftar untuk uji coba origin.

Untuk berpartisipasi dalam uji coba origin "terbalik":

  1. Minta token untuk origin Anda.
  2. Tambahkan token ke halaman HTML Anda. Ada dua cara untuk melakukannya:
    • Tambahkan tag origin-trial <meta> ke header setiap halaman. Contoh: <meta http-equiv="origin-trial" content="TOKEN_GOES_HERE">
    • Atau, konfigurasi server Anda untuk menampilkan respons yang berisi header HTTP Origin-Trial. Header respons yang dihasilkan akan terlihat seperti ini: Origin-Trial: TOKEN_GOES_HERE
  3. Tambahkan token yang sama ke manifes AppCache Anda. Lakukan ini melalui kolom baru di manifes Anda, dengan format:
ORIGIN-TRIAL:
TOKEN_GOES_HERE

(Harus ada baris baru antara ORIGIN-TRIAL dan token Anda.)

Anda dapat melihat contoh project yang disematkan di bawah yang menunjukkan cara menambahkan token uji coba origin yang benar ke dalam file index.html dan manifest.appcache.

Mengapa token diperlukan di beberapa tempat?

Token uji coba origin yang sama harus dikaitkan dengan:

  • Semua halaman HTML Anda yang menggunakan AppCache.
  • Semua manifes AppCache Anda melalui kolom manifes ORIGIN-TRIAL.

Jika sebelumnya Anda pernah berpartisipasi dalam uji coba origin, Anda mungkin telah menambahkan token hanya ke halaman HTML. Uji coba origin "terbalik" AppCache bersifat khusus karena Anda juga perlu mengaitkan token dengan setiap manifes AppCache.

Menambahkan token uji coba origin ke halaman HTML akan mengaktifkan antarmuka window.applicationCache dari dalam aplikasi web Anda. Halaman yang tidak dikaitkan dengan token tidak akan dapat menggunakan metode dan peristiwa window.applicationCache. Halaman tanpa token juga tidak akan dapat memuat resource dari AppCache. Mulai Chrome 85, keduanya akan berperilaku seolah-olah AppCache tidak ada.

Menambahkan token uji coba origin ke manifes AppCache menunjukkan bahwa setiap manifes masih valid. Mulai Chrome 85, manifes apa pun yang tidak memiliki kolom ORIGIN-TRIAL akan diperlakukan sebagai salah format, dan aturan dalam manifes akan diabaikan.

Logistik dan waktu deployment uji coba Origin

Meskipun uji coba origin "terbalik" secara resmi dimulai dengan Chrome 84, Anda dapat mendaftar untuk uji coba origin sekarang dan menambahkan token ke manifes HTML dan AppCache Anda. Saat audiens aplikasi web Anda secara bertahap mengupgrade ke Chrome 84, token apa pun yang telah Anda tambahkan akan diterapkan.

Setelah menambahkan token ke manifes AppCache, buka about://appcache-internals untuk mengonfirmasi bahwa instance Chrome lokal Anda (versi 84 atau yang lebih baru) telah mengaitkan token uji coba origin dengan entri yang di-cache di manifes dengan benar. Jika uji coba origin Anda dikenali, Anda akan melihat kolom dengan Token Expires: Tue Apr 06 2021... di halaman tersebut, yang dikaitkan dengan manifes Anda:

Antarmuka about://appcache-internals yang menampilkan token yang dikenali.

Pengujian sebelum penghapusan

Sebaiknya Anda bermigrasi dari AppCache sesegera mungkin. Jika Anda ingin menguji penghapusan AppCache di aplikasi web, gunakan flag about://flags/#app-cache untuk menyimulasikan penghapusan. Flag ini tersedia mulai Chrome 84.

Strategi migrasi

Pekerja layanan, yang didukung secara luas di browser saat ini, menawarkan alternatif untuk pengalaman offline yang disediakan oleh AppCache.

Kami telah menyediakan polyfill yang menggunakan pekerja layanan untuk mereplikasi beberapa fungsi AppCache, meskipun tidak mereplikasi seluruh antarmuka AppCache. Secara khusus, API ini tidak menyediakan pengganti untuk antarmuka window.applicationCache atau peristiwa AppCache terkait.

Untuk kasus yang lebih kompleks, library seperti Workbox menyediakan cara mudah untuk membuat pekerja layanan modern untuk aplikasi web Anda.

Pekerja layanan dan AppCache bersifat eksklusif satu sama lain

Saat mengerjakan strategi migrasi, perlu diingat bahwa Chrome akan menonaktifkan fungsi AppCache di halaman apa pun yang dimuat di bawah kontrol pekerja layanan. Dengan kata lain, segera setelah men-deploy pekerja layanan yang mengontrol halaman tertentu, Anda tidak dapat lagi menggunakan AppCache di halaman tersebut.

Oleh karena itu, sebaiknya Anda tidak mencoba bermigrasi ke pekerja layanan bagian demi bagian. Akan menjadi kesalahan jika Anda men-deploy pekerja layanan yang hanya berisi beberapa logika penyimpanan dalam cache. Anda tidak dapat kembali ke AppCache untuk "mengisi kekurangan".

Demikian pula, jika Anda men-deploy pekerja layanan sebelum penghapusan AppCache, lalu menemukan bahwa Anda perlu melakukan rollback ke penerapan AppCache sebelumnya, Anda harus memastikan bahwa Anda menghapus registrasi pekerja layanan tersebut. Selama ada pekerja layanan terdaftar dalam cakupan untuk halaman tertentu, AppCache tidak akan digunakan.

Kisah lintas platform

Sebaiknya tindak lanjuti dengan vendor browser tertentu jika Anda ingin mengetahui informasi selengkapnya tentang rencana mereka terkait penghapusan AppCache.

Firefox di semua platform

Firefox menghentikan penggunaan AppCache dalam rilis 44 (September 2015), dan telah menghapus dukungan untuknya dalam build Beta dan Nightly mulai September 2019.

Safari di iOS dan macOS

Safari tidak lagi menggunakan AppCache pada awal tahun 2018.

Chrome di iOS

Chrome untuk iOS adalah kasus khusus, karena menggunakan mesin browser yang berbeda dengan Chrome di platform lain: WKWebView. Pekerja layanan saat ini tidak didukung di aplikasi iOS yang menggunakan WKWebView, dan pengumuman penghapusan AppCache Chrome tidak mencakup ketersediaan AppCache di Chrome untuk iOS. Perhatikan hal ini jika Anda mengetahui bahwa aplikasi web Anda memiliki audiens Chrome untuk iOS yang signifikan.

WebView Android

Beberapa developer aplikasi Android menggunakan WebView Chrome untuk menampilkan konten web, dan mungkin juga menggunakan AppCache. Namun, Anda tidak dapat mengaktifkan uji coba origin untuk WebView. Oleh karena itu, WebView Chrome akan mendukung AppCache tanpa uji coba origin hingga penghapusan akhir dilakukan, yang diperkirakan akan dilakukan di Chrome 90.

Pelajari lebih lanjut

Berikut beberapa referensi untuk developer yang bermigrasi dari AppCache ke pekerja layanan.

Artikel

Alat

Mendapatkan bantuan

Jika Anda mengalami masalah saat menggunakan alat tertentu, buka masalah di repositori GitHub.

Anda dapat mengajukan pertanyaan umum tentang migrasi dari AppCache di Stack Overflow, menggunakan tag html5-appcache.

Jika Anda menemukan bug yang terkait dengan penghapusan AppCache Chrome, harap laporkan menggunakan Issue Tracker Chromium.

Gambar hero berdasarkan Smithsonian Institution Archives, Acc. 11-007, Kotak 020, Gambar No. MNH-4477.