Я реализовал это простое решение, которое работает для меня (еще не в производственной среде):
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);
}
});
}
У меня есть небольшой файл, в котором находятся html:
"versio.txt":
v00.5.0014
Эта функция вызывается на всех моих страницах, поэтому при загрузке она проверяет, является ли значение версии localStorage ниже текущей версии и выполняет ли
location.reload(true);
... для принудительной перезагрузки с сервера, а не из кэша.
(очевидно, вместо localStorage вы можете использовать куки или другое постоянное клиентское хранилище)
Я выбрал это решение из-за его простоты, поскольку только ведение одного файла "versio.txt" приведет к перезагрузке всего сайта.
Метод queryString сложно реализовать, и он также кэшируется (если вы перейдете с v1.1 на предыдущую версию, загрузка из кеша будет выполняться, то это означает, что кеш не очищается, сохраняя все предыдущие версии в кеше).
Я немного новичок и буду признателен за вашу профессиональную проверку и проверку, чтобы убедиться, что мой метод - хороший подход.
Надеюсь, это поможет.