Safari 6 se actualiza cuando vuelvo

5

Tengo este problema molesto con Safari 6, cada vez que retrocedo o retrocedo (tanto los botones de la barra de herramientas como el deslizamiento de dos cantantes) la pestaña se actualiza. Aquí hay un video rápido para ilustrar el problema: enlace

Normalmente no me importaría, creció un poco en mí con el tiempo (no estoy muy seguro de que esto haya comenzado cuando realicé la actualización a Safari 6 o Mountain Lion; había una semana entre las actualizaciones), pero mi el cliente encontró un error en la aplicación web que construí (algunos botones dejan de responder cuando vuelve, todavía está en Lion) y no puedo reproducir el problema porque mi Safari se actualiza cada vez.

Mi pregunta es, ¿cuál es el comportamiento normal de Safari? ¿Y cómo / si puedo hacer que Safari no se actualice?

ACTUALIZACIÓN

Resulta que el problema era que Safari no (de forma predeterminada) dispara el onLoad incluso cuando está en la "acción de retroceso". No pude reproducir el error en mi máquina porque aparentemente la extensión 1password causa el evento onLoad incluso cuando vuelves.

    
pregunta Dan F. 06.09.2012 - 14:17

2 respuestas

2

Resulta que el problema era que Safari no (de manera predeterminada) dispara el onLoad incluso cuando se realiza la "acción de retroceso" (usando el botón de retroceso o el deslizamiento de dos dedos) pero no pude reproducir el error en mi máquina porque aparentemente la extensión 1password causa el evento onLoad incluso cuando regresas.

Otras explicaciones a petición de Render:

Asumamos este código en todas las páginas:

$(document).ready(function () {
    alert('test');
}

Y esta secuencia de acciones:

  1. abrir page-1.html
  2. abrir página-2.html
  3. Volver
  4. seguir adelante

Safari no mostrará la alerta después de los pasos 3 y 4, por lo que el evento onLoad no se activa y la página .js continúa la ejecución desde donde se detuvo cuando saliste de la página.

También en la versión actual 6.0.3, tener la extensión 1password (3.9.14) parece no tener ningún efecto sobre este comportamiento.

Espero que ayude. Esto no debería importar en la mayoría de los casos, solo cuando escribes un código incorrecto (como lo hizo) te morderá el culo :)

    
respondido por el Dan F. 13.09.2012 - 11:01
-1

Aunque visualmente parece que la página se está actualizando, si la respuesta original tenía los encabezados de caché adecuados, se servirá desde el caché y no se realizará ninguna solicitud al servidor hasta que el caché esté obsoleto.

Al probar esto, me encontré con un problema en el que el Inspector web de Safari no parece indicar correctamente si se cargó una página desde el caché, pero al monitorear los registros de mi servidor, parecía que Safari está respetando los encabezados de caché que se envían después. todos.

Cuando un servidor envía encabezados que no permiten el almacenamiento en caché con la respuesta, o la memoria caché ha caducado, Safari, como cualquier otro navegador, realizará una nueva solicitud cuando vuelva a visitar una página del historial.

También tenga en cuenta que puede deshabilitar completamente el almacenamiento en caché desde el menú Desarrollar (si está habilitado). Asegúrese de que no habilite esta opción.

    
respondido por el Gerry 06.09.2012 - 14:42

Lea otras preguntas en las etiquetas