HTML5 представил несколько действительно удобных инструментов для манипулирования историю браузера, а именно методы history.pushState
/replaceState
и событие onpopstate
, поэтому нам не нужно полагаться на location.hash
es для отображения значимого URL-адреса для наших веб-приложений.
(Или лучше, мы не будем полагаться на хэши, когда внедрение IE‹10 будет незначительным.)
Использование кнопок браузера «назад» и «вперед» не перезагружает страницу, если целевое состояние было создано с помощью history.pushState
, даже если URL-адрес выглядит совершенно иначе.
Однако, в отличие от изменения хеша, если пользователь изменяет URL-адрес из адресной строки браузера, браузер действительно перезагружает страницу. Почему-то я сомневаюсь, что для этого есть эффективное решение, но вопрос в том, есть ли способ запретить браузеру перезагружать страницу и вместо этого заставить его нажать состояние истории?