Saya mencoba mencari cara menangani cache browser web dengan benar untuk aplikasi satu halaman.
Saya memiliki desain yang cukup khas: beberapa file HTML, JS dan CSS mengimplementasikan SPA, dan banyak data JSON yang dikonsumsi oleh SPA. Masalah muncul ketika saya ingin mendorong pembaruan: Saya memperbarui bagian statis situs dan kode yang menghasilkan JSON pada saat yang sama, tetapi browser klien sering memiliki bagian statis di-cache, jadi kode lama mencoba memproses data baru dan mungkin (tergantung pada perubahan yang dibuat) mengalami masalah. (Secara khusus, IE tampaknya lebih agresif daripada Chrome atau Firefox tentang menggunakan JS yang di-cache tanpa memvalidasi ulang.)
Apa cara terbaik untuk menangani ini?
- Pastikan perubahan JSON saya kompatibel dengan mundur, dan menganggap cache browser akan kedaluwarsa dalam jangka waktu yang masuk akal.
- Sematkan nomor versi di JS statis dan JSON, kemudian jalankan
window.location.reload(true);
jika tidak cocok. - Cari tahu kombinasi header yang sesuai (
must-revalidate
atauno-cache
atau apa pun; sumber berbeda-beda tentang cara melakukan ini) untuk memastikan bahwa browser selalu memvalidasi ulang semua sumber daya pada setiap beban, bahkan jika itu berarti beberapa perjalanan bolak-balik tambahan untuk memuat situs. - Kelola kontrol-cache saya dan kedaluwarsa tajuk sehingga konten statis kedaluwarsa saat saya ingin mendorong pembaruan.
- Sesuatu yang lain