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.

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

Service worker, yang didukung secara luas di browser saat ini, menawarkan alternatif untuk menyediakan yang ditawarkan AppCache. Lihat Strategi migrasi.

Linimasa

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

Status "tidak digunakan lagi" fitur ini masih ada, tetapi mencatat pesan peringatan yang mencegah penggunaan. "dihapus" sudah tidak 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)
"Balik" uji coba origin dimulai Chrome 84 (Juli 2020)
Penghapusan dari konteks aman, kecuali pengguna yang ikut serta dalam uji coba origin Chrome 85 (Agustus 2020)
Penghapusan menyeluruh dari konteks yang aman untuk semua orang, setelah uji coba origin selesai 5 Oktober 2021 (sekitar Chrome 95)

Uji coba origin

Linimasa mencantumkan dua pencapaian mendatang yang akan dihapus. Mulai Chrome 85, AppCache tidak akan lagi tersedia di Chrome secara default. Developer yang memerlukan waktu tambahan untuk bermigrasi dari AppCache dapat mendaftar untuk "pembalikan" uji coba origin untuk memperluas 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 pengguna yang telah mendaftar uji coba origin.

Untuk berpartisipasi dalam tantangan "terbalik" uji coba origin:

  1. Minta token untuk origin Anda.
  2. Tambahkan token ke halaman HTML Anda. Ada dua cara untuk melakukannya:
    • Tambahkan tag origin-trial <meta> ke bagian atas 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: Origin-Trial: TOKEN_GOES_HERE
  3. Tambahkan token yang sama ke manifes AppCache Anda. Lakukan ini melalui kolom baru dalam manifes Anda, dengan format:
ORIGIN-TRIAL:
TOKEN_GOES_HERE

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

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

Mengapa token diperlukan di banyak 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. "Terbalik" AppCache Uji coba origin bersifat khusus karena Anda juga perlu mengaitkan token dengan setiap manifes AppCache.

Menambahkan token uji coba origin ke halaman HTML Anda 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, Chrome akan berperilaku seolah-olah AppCache tidak ada.

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

Waktu dan logistik deployment uji coba origin

Sementara "kebalikan" uji coba origin secara resmi dimulai dengan Chrome 84. Anda dapat mendaftar ke uji coba origin sekarang dan menambahkan token ke manifes HTML dan AppCache. Seiring audiens aplikasi web Anda secara bertahap diupgrade ke Chrome 84, semua token yang telah Anda tambahkan akan berlaku.

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

Service worker dan AppCache saling eksklusif

Saat mengerjakan strategi migrasi Anda, perlu diingat bahwa Chrome akan menonaktifkan fungsi AppCache di halaman apa pun yang dimuat di bawah kontrol pekerja layanan. Dengan kata lain, segera setelah Anda 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 suatu kesalahan jika Anda men-deploy pekerja layanan yang hanya berisi beberapa logika caching Anda. Anda tidak dapat menggunakan kembali AppCache untuk "mengisi kekurangan data".

Demikian pula, jika Anda men-deploy pekerja layanan sebelum penghapusan AppCache, lalu ternyata Anda perlu melakukan roll back ke penerapan AppCache sebelumnya, pastikan Anda membatalkan pendaftaran 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 tidak digunakan lagi AppCache dalam rilis 44 (September 2015), dan telah menghapus dukungan untuknya dalam versi Beta dan Nightly sejak September 2019.

Safari di iOS dan macOS

Safari tidak digunakan lagi AppCache pada awal 2018.

Chrome di iOS

Chrome untuk iOS adalah kasus khusus, karena menggunakan mesin browser yang berbeda dengan Chrome pada 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. Harap perhatikan ini jika Anda mengetahui bahwa aplikasi web 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 diharapkan tersedia 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 terkait penghapusan AppCache di Chrome, laporkan menggunakan issue tracker Chromium.

Banner besar berdasarkan Smithsonian Institution Archives, Acc. 11-007, Box 020, Gambar No. MNH-4477.