Saya menerapkan solusi sederhana ini yang berfungsi untuk saya (belum pada lingkungan produksi):
function verificarNovaVersio() {
var sVersio = localStorage['gcf_versio'+ location.pathname] || 'v00.0.0000';
$.ajax({
url: "./versio.txt"
, dataType: 'text'
, cache: false
, contentType: false
, processData: false
, type: 'post'
}).done(function(sVersioFitxer) {
console.log('Versió App: '+ sVersioFitxer +', Versió Caché: '+ sVersio);
if (sVersio < (sVersioFitxer || 'v00.0.0000')) {
localStorage['gcf_versio'+ location.pathname] = sVersioFitxer;
location.reload(true);
}
});
}
Saya memiliki sedikit file yang berlokasi di mana html berada:
"versio.txt":
v00.5.0014
Fungsi ini dipanggil di semua halaman saya, jadi ketika memuatnya memeriksa apakah nilai versi localStorage lebih rendah dari versi saat ini dan melakukan
location.reload(true);
... untuk memaksa memuat ulang dari server alih-alih dari cache.
(jelas, alih-alih penyimpanan lokal, Anda dapat menggunakan cookie atau penyimpanan klien persisten lainnya)
Saya memilih solusi ini karena kesederhanaannya, karena hanya mempertahankan satu file "versio.txt" akan memaksa situs lengkap untuk memuat ulang.
Metode queryString sulit untuk diterapkan dan juga di-cache (jika Anda mengubah dari v1.1 ke versi sebelumnya akan memuat dari cache, maka itu berarti bahwa cache tidak memerah, menjaga semua versi sebelumnya di cache).
Saya seorang pemula dan saya sangat menghargai pemeriksaan & ulasan profesional Anda untuk memastikan metode saya adalah pendekatan yang baik.
Semoga ini bisa membantu.