У меня есть приложение Angular, которое является версионным. Иногда пользователь получает поточный файл index.html
, который соответствует старой версии приложения, что приводит к ошибкам при попытке загрузить другие фрагменты javascript, css и т. Д.
Поскольку я записываю каждый номер версии, я думал сравнить его с последним номером версии при запуске приложения, чтобы, если они не совпадают (у пользователя более старая версия), я принудительно обновляю пользователь получит последнюю версию.
Однако я боюсь, что это выйдет из-под контроля и в некоторых случаях приведет к обновлению цикла, если что-то пойдет не так. Я думал о том, чтобы сохранить переменную в локальном хранилище, указав, что она уже пыталась обновить, а не пытаться снова.
async checkVersion() {
if (isPlatformBrowser(this.platformId)) {
try {
const json = await this.http.get(`${environment.domain}/assets/version.json?${new Date(Date.now()).getTime()}`).map(res => res.json()).share().toPromise();
const latestVersion = json.version;
const currentVersion = environment.version;
this.localStorageService.setItem('currentVersion', currentVersion);
if (latestVersion !== currentVersion) {
// Safely refresh
}
} catch (e) {
console.error(e);
}
}
}
Какой самый безопасный способ форсировать обновление и , предотвращая петлю ?