2009-03-18 21 views
8

Estoy buscando un marco de historial de JavaScript para manejar la navegación dentro de una página cuando el usuario selecciona múltiples opciones que cambian el comportamiento de la página.Experiencias con marcos de historial de Javascript

Hay varios artefactos en la página que cambian la carga de datos de la página y me gustaría almacenar esto como un conjunto de comportamiento apilado. En un sentido más amplio, me gustaría agregar esto como un conjunto de herramientas para mis futuros proyectos web por las mismas razones.

Principalmente estoy escribiendo en ASP.NET con JQuery, pero por ahora solo estoy realmente preocupado por JQuery. Escribo otros proyectos en PHP, Python y Perl (dependiendo del concierto) por lo que tendría que ser independiente de la plataforma.

He estado buscando en la red y he encontrado algunas, pero solo una (cubierta en OReilly) parecía encajar en la factura. Empecé a jugar con él, pero quería saber qué herramientas usaban otras personas y qué otros recomendarían.

Así que si tienes alguna experiencia en frameworks de historial, manejando el botón Atrás (etc) me encantaría saber qué has usado y cómo te ha funcionado. Realmente me ayudaría a hacer una elección final en la biblioteca.

Gracias,

S

Respuesta

4

Hace un tiempo tuve el mismo problema al construir un sitio de solo flash. Tratamos:

  • Really Simple History (que tenía algunos problemas en la combinación de safari y flash)
  • ExtJS que tiene un history component, que funcionó muy bien para nosotros. (Demo) [Además, ya hemos utilizado este marco para otros proyectos.]
1

Tal this question es útil para usted. En la pregunta que vincula a una página de prueba, donde location.hash se utiliza para realizar un seguimiento del historial. Actualmente estoy usando este método en un sitio de prueba y tengo problemas con Opera (trunca un valor de location.hash en el signo de interrogación, deberás usar: location.href.split(/#/)[1]) y, por supuesto, IE (necesita un iframe). En IE con iframe, el historial se guarda solo para la sesión actual. Si carga otra página en la misma ventana/pestaña y usa el botón Atrás para volver a la página de AJAX, se pierde el historial anterior. No es un gran problema para mí, pero puede ser molesto. Entendí que el historial de IE8 debería comportarse como se esperaba con location.hash, incluso debería tener un controlador de hashchange.

Creo que la mayoría de los marcos usan la misma técnica (monitoreo de ubicación.que requiere cambios, usando un iframe para IE). No quería usar un framework, porque estoy usando mi propio framework casero y los frameworks regulares contienen demasiada funcionalidad que nunca usaré.

1

jQuery History es mi opción preferida. Se puede encontrar aquí: http://www.balupton.com/projects/jquery-history/ Proporcionar soporte de navegador cruzado, enlace a hashes, hash de sobrecarga, todo lo demás.

Hay también una extensión Ajax para ello llama jQuery AJAXy, lo que le permite actualizar fácilmente su página web en una aplicación adecuada Ajax y sin necesidad de cambios del lado del servidor y SEO restante y agradable JS-minusválidos: http://www.balupton.com/projects/jquery-ajaxy/

En general se están bien documentados, soportados y son ricos en funciones.También han ganado una pregunta recompensas aquí How to show Ajax requests in URL?

0

Dial.js es un marco historial del navegador JavaScript diseñado para proporcionar algunas de las características de un marco de pleno derecho MVC con jQuery y History.js para aplicaciones de una sola página (ZEPA).

Cuestiones relacionadas