Parece que Gmail tiene una manera ingeniosa de manejar los botones atrás/adelante en una aplicación JS enriquecida.¿Cómo maneja Gmail hacia atrás/adelante en JavaScript enriquecido?
En mi organización probamos el complemento de historial jQuery. El plugin básicamente ejecuta una función cada 100ms que analiza la URL y prueba si ha cambiado. El historial es rastreado por los anclajes HTTP, y si el anclaje ha cambiado, el complemento llama a una devolución de llamada especificada por el usuario, pasando el nuevo anclaje, para que la página pueda realizar un comportamiento personalizado para cargar el nuevo contenido.
Mi organización determinó que el complemento del historial jQuery no era de calidad de producción. No los culpo por ser honestos, porque realmente no quieren obligar a los navegadores de sus usuarios a ejecutar una función cada 100 ms. Además, hizo que el código JS fuera casi imposible de depurar, porque hacer clic en "Interrumpir Siguiente" en Firebug o depurador JS similar, siempre atraparía el evento del historial jQuery, y ningún otro evento vería.
Así que se dio por vencido en este momento en la implementación de la funcionalidad de retroceso/avance en el navegador. Sin embargo, recientemente noté que Gmail implementa esto bastante bien. También usa el valor de anclaje de HTTP, pero presioné "Romper en el siguiente" y Gmail no ejecuta ningún tipo de función cada 100 ms. ¿Cómo logra Gmail implementar este comportamiento de retroceso/avance?
posible duplicado de [¿Cómo Gmail hace que IE vuelva a funcionar sin actualizar?] (Http://stackoverflow.com/questions/1404434/how-gmail-makes-ie-back-work-without-refresh) –