2011-07-03 14 views
10

He estado investigando la mejor forma de utilizar la API de HTML5 api aka psuhState con un respaldo adecuado para navegadores HTML4.¿Cómo funciona Github PushState sin Hash Tags?

Github utiliza la API de la historia por su navegación en árbol (el siguiente enlace es sólo un ejemplo, no se utiliza la biblioteca de github):

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

Lo que no puedo entender es cómo manejar este funcionalidad para navegadores HTML4 como Firefox 3.5?

He visto, específicamente, history.js (vinculado anteriormente) para manejar este tipo de cosas. Pero se requiere una implementación hash # para los navegadores HTML4 que me gustaría evitar.

Si visita Github y explora un árbol de directorios con un navegador HTML4, se ve idéntico a un navegador HTML5 (el estado de la url, es decir).

Si desactivo JavaScript en FF3.5, una dirección URL que anteriormente era la siguiente:

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

ahora se ve así:

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

¿Alguna idea?

Respuesta

15

GitHub utiliza http://pjax.heroku.com/

Para los navegadores que no soportan pushState simplemente se degrada con el comportamiento páginas a plena carga aburrida de edad normal.

+0

Entonces, ¿para ese comportamiento de retorno, eso significa que Github está creando físicamente esos directorios en el servidor? ¿O están creando los directorios sobre la marcha de alguna manera? Estoy confundido acerca de cómo operan la técnica alternativa. – Yahreen

+0

Directorios? ... – Tekkub

+0

¿Están creando la estructura de carpetas en el servidor? – Yahreen

7

Responsive web design from the future es una presentación de diapositivas de 96 de Kyle Neath, un diseñador que trabaja en GitHub, que podría ayudarle.

pushState. replaceState. Hashbangs. AJAX. PJAX. Remolachas Osos. Battlestar Galactica.

El diseño web sensible es mucho más que el tamaño de su pantalla . Esta charla trata acerca de cómo GitHub maneja los enlaces, la barra de URL , las actualizaciones de página parciales y explica por qué creo que la API de historia de HTML5 es lo más importante que le puede pasar al desarrollo de front-end desde Firebug.