Почему браузер не перезагаружает страницы при движении по истории назад?
Обновляю страницу по ajax добавляя в историю новое состояние так: history.pushState('', title, url);
Но если нажимаю кнопку Назад браузера, то браузер просто меняет URL на старый, но не обновляет страницу на него (не перезагружает её).
Типа он запоминает что страница не обновлялась. Как сделать, чтобы обновление страницы всё же происходило?
Я имею ввиду не написать js как, который так же по ajax обновит страницу (как это сделать я знаю), а как заставить браузер делать рефреш при движении назад по истории.
Тоже интересует этот вопрос. Например, пользователь поменял сортировку в категории, листинг товаров обновился аяксом, новая сортировка прописалась в куку. Перешёл в карточку товара по ссылке со страницы. Вернулся назад, а там первоначальная сортировка.
Я имею ввиду не написать js как, который так же по ajax обновит страницу (как это сделать я знаю), а как заставить браузер делать рефреш при движении назад по истории.
То что так можно сделать - я знаю. Как делать знаю.
Знаю даже что можно просто ловить события и рефрешить из js.
Вопрос стоит так: почему браузер не делает это сам и что сделать чтобы делал?
Рефрешнуть страницу. Допустим я перехожу c /articles/ на /articles/?page=2
Если я перешел по "честной" ссылке, то при нажатии "назад" браузер вернет меня на страницу /articles/
Но если я обновил страницу с помощью js и запушил в историю адрес /articles/?page=2, то переход "назад" пои истории просто меняет адрес в строке на /articles/ и обновления страницы не происходит. Вот отчего так?
Возможно браузер ведет себя в соответствии с заголовками кеширования данных, прописанных на странице
Под вопросом внутренний контент (например подключаемые картинки).
Предвижу вопрос, а почему перегружается если повторно открыть страницу вручную? - потому что такое поведение изменено, и то в этом случае всякие скрипты и стили будут перезагружены только если там правильно настроено кеширование (именно поэтому начинающие веб-разработчики постоянно попадаются на - изменил код на сайте, заново открыл страничку, а код там старый).
p.s. я очень любил старый opera с движком presto за подобное поведение, при нажатии назад браузер игнорирует любые настройки кеша и гарантированно не лезет на сервер, показывая содержимое максимально быстро
Возможно браузер ведет себя в соответствии с заголовками кеширования данных, прописанных на странице
Под вопросом внутренний контент (например подключаемые картинки).
Точно нет. Ведь если я отключаю свой ajaх и честно перехожу на следующую страницу, то назад возвращает меня на страницу с которой я ушел.