Как отключить перезагрузку страницы в истории?

Я не хочу перезагружать страницу при переходе к истории на своих веб-страницах.

Когда посетители нажимают кнопку «Назад» в браузере или нажимают клавишу возврата, мои страницы перезагружаются. Как отключить перезагрузку истории назад или как активировать реальное кеширование?

Спасибо...


person Abdullah    schedule 15.01.2011    source источник


Ответы (3)


Такое поведение связано с МО браузера, а не с вашей стороны.

person Julio Santos    schedule 15.01.2011

вы не можете предотвратить перезагрузку страницы. Если ваша проблема связана с перезагрузкой страниц POST, с сообщениями, предупреждающими пользователя о том, что данные POSTED должны быть отправлены повторно, вам следует обратить внимание на принцип «Перенаправление после публикации» с переадресацией 303 на POST. Это может исправить некоторые из тезисов поведения.

Второе, на что следует обратить внимание, это заголовки кеша, которые вы отправляете вместе с ответами ваших страниц. Используйте расширение Firebug для PageSpeed ​​или другие инструменты. У вас будут хорошие подсказки о том, какие заголовки вы на самом деле отправляете и настройка, которую вы можете настроить. Когда ваши заголовки кеша в порядке, вы увидите, что некоторые страницы не будут отозваны и что некоторые запросы из браузера генерируют не настоящий GET + ответ 200, а 304-неизменные ответы и запросы заголовков. И если вы углубитесь в анализ, вы обнаружите, что то, как работает кеш браузера, во многом зависит от браузера.

person regilero    schedule 15.01.2011

Страница не перезагружается при переходе по закладке HTML в том же документе. То есть весь просмотр должен происходить с использованием только Javascript, а URL-адрес должен оставаться неизменным до символа #. Для правильной обработки кнопки «Назад» вам может потребоваться использовать onpopstate. Если вы не хотите никаких изменений в URL-адресе, вы можете использовать заголовок history.pushState().

Если браузер не поддерживает Javascript, вы можете сделать некоторые трюки, используя селектор CSS :target. -- или просто переместите пользователя на другую страницу с перезагрузкой.

Примечание. Я не кодировал такую ​​страницу, это просто мое предположение после прочтения Справочная страница по API.

person emu    schedule 07.04.2016