w3schools ejemplo desde cero caracteristicas javascript asp.net ajax hashchange

javascript - ejemplo - pushstate jquery



¿Cómo mantener sincronizado el historial del navegador cuando se usa Ajax? (8)

La actualización 3.5 SP1 tiene soporte para el historial del navegador y el botón Atrás en ASP.NET ajax ahora.

Estoy escribiendo una aplicación de álbum de fotos simple usando ASP.NET Ajax.
La aplicación utiliza llamadas Async Ajax para precargar la siguiente foto del álbum, sin cambiar la URL en el navegador.

El problema es que cuando el usuario hace clic en el botón Atrás en el navegador, la aplicación no vuelve a la foto anterior, sino que navega hacia la página de inicio de la aplicación.

¿Hay alguna manera de engañar al navegador para que agregue cada llamada Ajax al historial de navegación?


Muchos sitios web utilizan un iframe oculto para hacerlo, simplemente actualice el iframe con la nueva URL, que lo agrega al historial de navegación. Entonces, todo lo que tiene que hacer es controlar cómo su aplicación reacciona a esos eventos de ''botón de retroceso'': necesitará detectar el estado / ubicación del iframe o actualizar la página usando esa URL.


Para todas las soluciones sobre el botón Atrás, ninguna de ellas es "automática". Con cada uno de ellos tendrá que hacer un trabajo para persistir en el estado de la página. Entonces, no, no hay una forma de "engañar" al navegador, pero hay algunas bibliotecas geniales que lo ayudan con el botón Atrás.




Puedes usar PathJS lib simple y liviano.

Ejemplo de uso:

Path.map("#/page1").to(function(){ ... }); Path.map("#/page2").to(function(){ ... }); Path.root("#/mainpage"); Path.listen();



Actualización: ahora existe la API de historial de HTML5 (pushState, popState) que desaprueba la funcionalidad de hashchange HTML4. History.js proporciona compatibilidad entre navegadores y una alternativa opcional de hashchange para navegadores HTML4.

La respuesta para esta pregunta será más o menos la misma que mis respuestas para estas preguntas:

En resumen, definitivamente querrá consultar estos dos proyectos que explican todo el proceso de cambio y agregar ajax a la mezcla:

  • jQuery History (usando hashes para administrar el estado de sus páginas y vincularse a los cambios para actualizar su página).

  • jQuery Ajaxy (extensión ajax para el historial de jQuery, para permitir que los sitios web de Ajax sean completamente discretos y graciosamente degradables).