2011-12-21 14 views
6

Es posible que haya visto app.asana.com. Si no, deberías echarle un vistazo, es una aplicación web muy bonita.¿Cómo maneja Asana las URL sin #

Pero no puedo entender cómo manejan toda la administración de URL. Backbone.js o Knockout.js maneja la URL con el #, y todo lo demás se acaba de generar.

Pero asana no tiene un hash y puede modificar la URL, ¿cómo lo están haciendo?

+0

posible duplicado de [¿Cómo mantiene github una página cargada mientras cambia las URL?] (Http://stackoverflow.com/questions/6051057/how-does-github-keep-a-loaded-page-while-changing- urls) – Quentin

Respuesta

5

Parece que están utilizando HTML5 history.pushState(); para que no tengan que actualizar la página y no tengan que usar # (hash) en la URL para acceder a una determinada parte de una aplicación web.

Aquí hay un buen tutorial sobre history.pushState();: https://developer.mozilla.org/en/DOM/Manipulating_the_browser_history

Ésta es la que utiliza Google + y Facebook para cambiar la dirección URL sin refrescante.

Espero que esto ayude.

3

HTML5 empuje Estado: http://spoiledmilk.dk/blog/html5-changing-the-browser-url-without-refreshing-page

La gran ventaja aquí es que si pega una URL Asana directamente en el navegador (o hace clic en un enlace de un correo electrónico), el servidor ve la URL completa y puede enviar inmediatamente los datos de la tarea apropiados para el cliente. Solíamos usar fragmentos de url, pero necesitábamos hacer un viaje de segunda vuelta después de cargar la aplicación para leer el fragmento en JavaScript y pasarlo al servidor.

Cuestiones relacionadas