У нас есть приложение, построенное на onReactJS и развернутое с использованием S3 и CloudFront. Мы постоянно сталкиваемся с проблемой клиентов, когда им необходимо выполнить полное обновление веб-приложения, чтобы получить новейшее SPA-приложение.
Чтобы решить эту проблему, я наткнулся на следующую статью.
Добавить уведомление о перезагрузке в create-реагировать-app & registerServiceWorker.js
Подход в этой статье успешно вызывает событие под названием «newContentAvailable» во всех трех браузерах, т.е. FF, Chrome и Safari. При возникновении этого события логика пытается перезагрузить обновленную версию, используя window.location.reload(true)
. Это обновляет FF и Safari успешно, но Chromes все еще получает старую версию.
Я пытался использовать другой подход для перезагрузки в Chrome, но безуспешно. При поиске по этой проблеме я наткнулся на следующий код
$.ajax({
url: window.location.href,
headers: {
"Pragma": "no-cache",
"Expires": -1,
"Cache-Control": "no-cache"
}
}).done(function () {
window.location.reload(true);
});
Я не уверен, что я делаю здесь неправильно. Пожалуйста, помогите.