Как Github делает pushState без хеш-тегов? - PullRequest
10 голосов
/ 03 июля 2011

Я искал лучший способ использования истории HTML5 api aka psuhState с подходящим резервным вариантом для браузеров HTML4.

Github использует API истории для просмотра дерева (следующая ссылка - только пример, а не библиотека, используемая github):

https://github.com/browserstate/History.js/

Что я не могу понять, так это то, как они обрабатывают эту функциональность для браузеров HTML4, таких как Firefox 3.5?

Я посмотрел, в частности, history.js (ссылка выше), чтобы справиться с подобными вещами. Но это требует реализации хеша # для браузеров HTML4, которой я бы хотел избежать.

Если вы посещаете Github и просматриваете дерево каталогов с помощью браузера HTML4, оно выглядит идентично браузеру HTML5 (то есть состоянию URL).

Если я отключу JavaScript в FF3.5, URL, который раньше выглядел так:

https://github.com/browserstate/history.js/tree/master/tests

теперь выглядит так:

https://github.com/browserstate/history.js/tree/a32e91aa1fe5909a29abb690a37f6c129e98068e/tests

Есть мысли?

Ответы [ 2 ]

15 голосов
/ 03 июля 2011

GitHub использует http://pjax.heroku.com/

Для браузеров, которые не поддерживают pushState, он просто ухудшается до обычного старого скучного режима полной загрузки страницы.

7 голосов
/ 07 августа 2011

Отзывчивый веб-дизайн из будущего - это презентация из 96 слайдов от Кайла Нита, дизайнера, работающего в GitHub, которая может вам помочь.

pushState.replaceState.Hashbangs.AJAX.PJAX.Свекла.Медведи.Battlestar Galactica.

Отзывчивый веб-дизайн намного больше, чем размер вашего экрана.В этом докладе рассказывается о том, как GitHub обрабатывает ссылки, панель URL-адресов, частичные обновления страниц, и объясняется, почему я считаю, что API истории HTML5 является наиболее важной вещью, которая случается при разработке интерфейса, начиная с Firebug.

...