2011-10-10 23 views
5

Tengo un jQuery que modifica elementos en la página después de que el usuario realiza una acción. Estos son persistentes en el lado del servidor para que todo se vea agradable y fluido para el usuario.Funcionalidad de caché del botón de navegación de Opera

Cuando el usuario hace clic fuera del sitio y luego presiona el botón Atrás, todos los navegadores excepto Opera vuelven a solicitar la página, por lo tanto, los cambios siguen apareciendo para el usuario. Sin embargo, con Opera el sitio vuelve a su estado anterior a Jquery (ya que no solicitó la página del servidor).

I podría hacer algo desagradable como comprobar el navegador y actualizar si Opera, pero obviamente esto no es ideal.

¿Alguna idea de un método mejor para resolver esto?

+0

¡Genial! Como usuario de Opera es bueno ver que los desarrolladores web lo consideran :) – alf

Respuesta

0
No

uno para responder a mi propia pregunta, pero parece que el siguiente resuelve mi problema:

history.navigationMode = 'fast'; 

Configuración esto significa que las páginas se Loade d en el estado exacto en que estaban cuando saliste de la página, que es básicamente lo que estaba buscando. Parece ser una configuración exclusiva de Opera, aunque parece ser solo Opera, que actúa de manera diferente.

Encontré la información here.

0

¿Podría quizás utilizar algún almacenamiento local HTML5 para conservar estos cambios en el lado del cliente (para aquellos usuarios que tienen navegadores compatibles con HTML5) y degradar graciosamente las solicitudes del servidor para aquellos que no lo hacen?

Después de un rápido recorrido: parece que Opera comenzó a admitir LocalStorage en Opera 10.5 (a principios de 2010), creo que también se actualiza automáticamente, por lo que la mayoría del 2.7% de los usuarios de Opera debería tener esta funcionalidad .

me gustaría sugerir el uso de http://www.modernizr.com/ para comprobar la presencia de funcionalidad y entonces quizás almacenar los resultados en un objeto literal JSON los resultados de ese en el almacenamiento local (en caso de que el almacenamiento y la recuperación más fácil!)

(HTML5 guía de almacenamiento local - http://php-html.net/tutorials/html5-local-storage-guide/)

0

Opera tiene algunas heurísticas para determinar si una página necesita un "reinicio" en la navegación del historial. La heurística incluye si la página está escuchando el evento de descarga (porque no podemos "deshacer" el evento de descarga) y si el código que causa la navegación se ejecutó desde un clic (porque los scripts a menudo desactivan los botones y no son fácilmente reversibles) cambios en el estado de la página). Si puede evitar desencadenar la heurística (Keep It Simple), el problema debería desaparecer incluso sin el hack history.navigationMode.

Cuestiones relacionadas