2012-06-22 2 views
0

Когда ссылка нажимается на facebook, верхняя панель заголовка вообще не мерцает. Я привык видеть этот эффект на страницах, где контент загружается через ajax, но в Chrome URL изменяется, и, насколько я знаю, это означает, что загружена новая страница.Содержимое динамически загружено в facebook?

В javascript я знаю, что URL-адрес не может быть изменен без перенаправления, но hashtag может, поэтому я нахожу это очень интригующим. Я подумал, что это может быть что-то, что делает хром, где он загружает веб-страницу, прежде чем отвлекать вас от предыдущего, чтобы создать бесшовный опыт, поэтому я попробовал его в Internet Explorer. В IE выполняется тот же эффект, но на этот раз URL не изменяется, а только хэштег. Я также пробовал FireFox, и он меняет URL так же, как это делает хром.

Что здесь происходит?

+0

http://diveintohtml5.info/history.html – zerkms

ответ

4

Да, он загружен AJAX. И URL-адреса изменены by manipulating the history. Хорошая библиотека под названием HistoryJS также обертывает эту функциональность для не поддерживающих браузеров с использованием изменений хэша.

1

Не уверен, что это так на Facebook, но History API позволяет вам программно изменять URL-адрес, если вы соответствуете same origin policy. GitHub - отличный пример использования этого метода ненавязчиво.

1

В современных браузерах можно обновить URL-адрес без перезагрузки страницы с помощью функции history.pushState().

Пример:

history.pushState({}, "", "foo.html"); 
+0

Я полагал, что это было что-то вдоль этих линий, но я пришел к http://stackoverflow.com/questions/6478485/jquery -change-the-url-address-without-redirecting, и это было относительно недавно, поэтому я предположил, что он по-прежнему прав. Благодаря! – mowwwalker