2011-12-19 16 views
8

Estoy escribiendo una aplicación AJAX compleja en este momento y todo el sitio tiene URL limpias. Por el momento, PHP crea el diseño básico para cada página, sin embargo, no quiero tener que salir de cada página cuando el usuario hace clic en un enlace, y no quiero tener un hash en la URL porque no ganó. se ajusta con el resto del sitio. Sé que esto ha aparecido antes en el sitio y parece ser bastante común, pero me preguntaba si había una manera clara de HTML5 de simplemente aparecer para cambiar la URL en la barra de direcciones, incluso si técnicamente permanece en el mismo página.¿Cómo cambiar la URL en el navegador sin tener que salir de la página?

Respuesta

3

Como otros han dicho, history.pushState de HTML 5 es el camino a seguir. Intente buscar un repositorio en github para verlo en acción (https://github.com/visionmedia/express).

Problema es la única versión de IE que admite history.pushstate es IE10, que es una mierda.

¡Un montón de sitios usan hashbang #! URL como Twitter (por ejemplo, https://twitter.com/#!/Sironfoot). El hashbang es un patrón de URL acordado por los motores de búsqueda para que aún puedan rastrear e indexar un sitio web fuertemente impulsado por Ajax (más información aquí http://code.google.com/web/ajaxcrawling/docs/specification.html), por lo que podría ir por esa ruta.

El único otro enfoque es utilizar history.pushstate para los navegadores que lo admitan y volver a las actualizaciones de página completa para los navegadores no compatibles.

Cuestiones relacionadas