Estoy tratando de implementar una navegación decente en una aplicación AJAX. Lo que estoy haciendo ahora es lo siguiente:Manera inteligente de administrar el historial del navegador
- Cada vez que un usuario hace clic en un enlace AJAX, se realiza la llamada correspondiente y se cambia el hash.
- Cada vez que se carga una página nueva, compruebo si el hash está presente y realizo la llamada AJAX correspondiente para actualizar la página. Esto asegura que los marcadores funcionarán como se esperaba.
- Cada 500ms verifico si se cambia el hash y realizo la llamada AJAX correspondiente. Esto cuida a los usuarios presionando los botones retroceder/avanzar, aunque con una demora leve.
El tercer punto es un poco molesto: prefiero no tener un tiempo de espera cada 500ms solo para verificar el hash, ya que la mayoría de las veces seguirá siendo el mismo.
¿Hay una mejor manera de gestionar esto? No puedo pensar en ninguna alternativa, pero tal vez me falta algo.
Por favor, no me dirija hacia las soluciones prefabricadas, a menos que sepa que se basan en un mecanismo diferente.
IE8, Firefox 3.6, Chrome 4 y los navegadores más nuevos admiten el evento hashchange. Biblioteca de cierres de Google (http://closure-library.googlecode.com/svn-history/r8/trunk/closure/goog/docs/class_goog_History.html) y YUI 3 (http://developer.yahoo.com/yui/ 3/history /) usará este evento si es posible, de lo contrario recurrirá a los esquemas de votación. – ide