Изменение URL ajax call в Facebook - PullRequest
0 голосов
/ 03 июня 2011

В Facebook, когда вы переходите на другой URL (в некоторых ситуациях), URL-адрес изменяется, но нет ощущения, что вы переходите на другую страницу.

Например: при просмотре изображений в Facebook и при переходе к следующему изображению URL-адрес изменяется в адресной строке

FROM> facebook.com/foo?bar=foobar&xxxx=

TO> >> facebook.com/foo?bar=boobar&xxxx=

и это не хэшированное изменение, например

FROM> facebook.com/xxxxx#xxx=xxxx

TO> >> facebook.com/xxxxx#xxx=yyyy

Как это возможно без проблем.Я имею в виду, как при изменении URL-адреса изменяется только контейнер.Предполагается, что при изменении URL-адреса происходит переход на другую страницу, которая может содержать кэшированную информацию с предыдущей страницы, и ЭТА навигация по изменению URL-адреса может быть очевидна, если на мгновение экран браузера станет пустым.

Если вы используете iFrame, как это реализовать?

Ответы [ 4 ]

1 голос
/ 12 июня 2011

Я использую что-то похожее на это

try {
  var stateObj = { foo: "bar" };
  history.pushState(stateObj, "page", href);
  loadPage(href);
}
catch(e) {
  window.location.hash = "#!/"+href;
}

Если он поддерживает HTML5 pushState, они меняют URL, но если этого не происходит, то отступление - хеш окна.

0 голосов
/ 03 июня 2011

вау.Я только что спросил это несколько минут назад ... используйте поиск в следующий раз;)

Динамический значок при обработке данных ajax

Изменить URL-адрес безперезагрузка страницы

0 голосов
/ 03 июня 2011

Они выдают запрос AJAX на данные, необходимые для выполнения «навигации», а затем сообщают браузеру «перейти к # xxx = yyy». Так как такого якоря не существует, браузер фактически не прокручивается вниз. Тем не менее, он записывает новую запись истории, а также обновляет URL, так что если кто-то копирует этот URL-адрес, он будет видеть тот же объект, который видит пользователь, а не только исходную страницу.

0 голосов
/ 03 июня 2011

Есть плагин jQuery под названием «адрес», который будет следить за изменениями и вызывать функцию, которую вы даете. Я думаю, что это просто проверка URL каждые 100 мс или около того.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...