Safari 6 se actualiza cuando vuelvo

Tengo este problema molesto con Safari 6, cada vez que retrocedo o adelante (tanto los botones de la barra de herramientas como dos cantantes), la pestaña se actualiza. Aquí hay un video rápido para ilustrar el problema: https://dl.dropbox.com/u/3257155/safari-refresh.mov

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

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

ACTUALIZAR

Resulta que el problema era que Safari no activa (de forma predeterminada) 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 regresa.

¿Has deshabilitado los cachés en Safari? Acabo de probar lo mismo con Safari 6 en ML, y no actualiza la página en condiciones normales, es decir, sirve la versión en caché dentro de los parámetros normales de control de caché.
No, no he deshabilitado los cachés (desde el menú Desarrollar o de otra manera)
Publique su actualización como respuesta y acéptela, es lo suficientemente interesante como para ser útil para otra persona en el futuro.
No tengo 1 contraseña en mi máquina y el problema persiste. :(
Parece que hay un problema con las ventanas de Safari de subprocesos múltiples en algunas máquinas: discusiones.apple.com/thread/4161818?start=45&tstart=0
@mcb ¿Conseguiste solucionar el problema? Todavía lo tengo y es molesto.
@Render: no me gusta Google, así que cambié a Firefox.

Respuestas (2)

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


Más explicaciones a petición de Render:

Así que supongamos este código en todas las páginas:

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

Y esta secuencia de acciones:

  1. abrir página-1.html
  2. abrir página-2.html
  3. Regresa
  4. Avanzar

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 quedó cuando se alejó 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 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 trasero :)

Qué quieres decir ? Eso no tiene sentido para mí, ¿puedes explicarlo?

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

Mientras probaba esto, me encontré con un problema en el que el inspector web de Safari no parece indicar correctamente si una página se cargó desde el caché, pero mientras monitoreaba los registros de mi servidor, parecía que Safari respetaba los encabezados del caché que se devolvían después de todo.

Cuando un servidor envió encabezados que no permiten el almacenamiento en caché con la respuesta, o el caché ha caducado mientras tanto, Safari, como cualquier otro navegador, realizará una nueva solicitud al volver 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úrate de no habilitar esta opción.

ingrese la descripción de la imagen aquí

Los cachés se vuelven a habilitar automáticamente al reiniciar Safari, por lo que, a menos que nunca cierre Safari, no será la causa principal.