2009-05-22 7 views
5

He hecho una conexión flexible de enlace profundo antes, pero ahora quiero hacer una aplicación AJAX de enlace profundo.Ajax deep linking?

No tengo ni idea de dónde empezar.

Supongo que necesito una forma de escuchar cuando cambia el #hash en la url y poder leerlo. Y supongo que necesito una forma de actualizar #hash en la url.

¿Alguien sabe cómo hacer todo eso?

Gracias!

Respuesta

6

Estás en el camino correcto.

Para cada estado de la página de Ajax que desea ser capaz de enlazar, cambiar el hash tag:

window.location.hash = "this_state" 

Cuando se carga la página que tendrá que comprobar si el window.location.hash el valor coincide con uno de sus estados y si hace que la aplicación vaya a ese estado. ("Escuchando" por el cambio de la etiqueta hash es la carga de la página.)

De esta manera, los usuarios pueden marcar y compartir los estados, lo que los convierte en una aplicación mucho más útil, por lo que se preocupa por su cuidado.

+0

Lo que dijo obras un poco, pero cuando pulso el botón de retroceso de los cambios de hash pero la página no se recarga entonces mi guion no lo sabe Creo que esto requiere alguna forma de escuchar el hash para cambiar. –

+0

Sí, tienes razón! Funciona bien en FF para mi ejemplo, pero de manera diferente en IE y Webkit. ¿Qué agregaría forzar una página para actualizar? Posiblemente añadiendo al objeto window.history en cada cambio de estado, agregando una cadena de consulta diferente, así como el hash podría hacerlo. De lo contrario, supongo que podrías sondear la ventana de ubicación de vez en cuando: por lo que sé, no hay un evento de cambio de hora. – edeverett

+0

Hay un plugin jquery (http://plugins.jquery.com/project/history) para administrar el historial de la ventana –