Google Chrome не открывает последнюю версию веб-приложения - PullRequest
1 голос
/ 25 марта 2012

Я разработал веб-приложение, которое использует постоянно меняющийся ресурс (приложение обновляет базу данных, что, в свою очередь, означает, что страница изменяется). В Chrome, когда я перехожу на другой сайт по ссылке и возвращаюсь с помощью кнопки «назад», он показывает оригинальную версию страницы, а не последнюю версию. Если я обновлю страницу, я увижу изменения. Вы знаете, как бороться с этой проблемой? Есть ли способ заставить Chrome обновить страницу или сохранить последнюю версию?

1 Ответ

1 голос
/ 26 марта 2012

Очевидный ответ - установить для заголовка Expires текущее или предыдущее время (в правильном формате RFC), чтобы указать, что срок действия страницы истекает немедленно. Однако предыдущий вопрос также актуален. Похоже, что Chrome кэширует содержимое в течение 300 секунд независимо от срока действия / кэширования заголовков. Internet Explorer также может активно кэшировать.

Я сомневаюсь, что есть хороший обходной путь. Одна из возможностей может заключаться в том, чтобы установить cookie с текущим временем, когда страница обслуживается, и протестировать его с помощью Javascript в заголовке страницы. Если значение слишком старое (вы выбираете, как долго «слишком старый»), то принудительно перезагрузите страницу, используя window.location, возможно, используя фиктивную строку запроса '?d='+Math.random(), чтобы гарантировать, что кэшированная версия не используется.

...