Как Facebook изменяет URL-адрес в адресной строке браузера без перезагрузки страницы или использования # или?

Пару месяцев назад я увидел новую функцию, развернутую на vkontakte.ru (русский FB): при переходе между страницами пользователей перезагрузки браузера не происходит. Вместо этого новая страница предварительно загружается, а затем отображается. Музыкальный проигрыватель, который находится на странице (он закреплен в верхней части нижнего колонтитула), продолжает воспроизводиться без прерывания.

Однако URL-адрес в адресной строке браузера изменяется, а не с помощью хэш-тега или строки запроса.

Итак, моя страница - vk.com/myPage ... Я нажимаю на друга, его страница предварительно загружается, затем отображается, когда URL-адрес в адресной строке браузера меняется на vk.com/myfriendJoe, и никакая перезагрузка браузера не происходит.

Обратите внимание, что он работает только с новейшими браузерами, такими как более поздние версии Safari и Chrome, для других, таких как Firefox 3.6, он реализует резервный вариант, который использует хэштеги и строки запроса.

Я провел небольшое исследование и нашел window.history. pushState , но похоже, что он работает только со строками запроса.

Мы будем благодарны за любые идеи. Спасибо.

6
задан Paul D. Waite 22 July 2011 в 22:28
поделиться