Как переписать URL без обновления, как на GitHub.com - PullRequest
9 голосов
/ 07 декабря 2010

Я просматривал GitHub.com и заметил при поиске источника хранилище, и вы нажимаете на файл, исходный код вставляется и URL-адрес изменяется, но он не выглядит так, как если бы страница обновилась,Кто-нибудь знает, как это делается?Я видел, как это делалось со знаком #, особенно при создании Flash-сайтов, но я никогда не видел, чтобы это делалось так, как это делает GitHub, без #.

Вот пример: https://github.com/jquery/jquery

Нажмите на один из текстовых файлов, таких как .gitattributes, затем нажмите jQuery в крошке, чтобы понять, что я имею в виду.

Ответы [ 3 ]

13 голосов
/ 07 декабря 2010

Github использует window.history.replaceState ()

Здесь Вы можете увидеть, как они это делают

8 голосов
/ 07 декабря 2010

XMLHttpRequest используется на стороне клиента в браузерах Chrome / Webkit для извлечения ресурсов на стороне сервера без обновления страницы, а содержимое загружается динамически, и анимации могут быть подключены во время добавления этого содержимого.

Я точно не знаю, почему Ajax использует только Chrome, так как обычно метка хеша изменяется при одинаковом применении ajax (например, Twitter).

Для URL-адреса, динамически изменяющегося, я считаю, что все, что сделано, это location.href обновлено. Если подумать, это может быть новая функция HTML5, которую поддерживает только Chrome.

2 голосов
/ 07 декабря 2010

Я нашел эту статью, которая объясняет эти возможности HTML5 - window.history.pushState (), window.history.replaceState () и событие onpopstate (): http://www.spoiledmilk.dk/blog/?p=1922

Как упоминается в статье, Flickr также использует эту технику в нескольких местах.

...