5 votos

Safari 6 se actualiza cuando vuelvo

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

Normalmente no me importaría, ya que se me ha pegado con el tiempo (no estoy seguro de que esto empezara cuando actualicé a Safari 6 o a Mountain Lion - hubo como una semana entre las actualizaciones), pero mi cliente encontró un error en la aplicación web que construyo (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.

Así que 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 dispara (por defecto) el onLoad ni siquiera cuando está en la "acción de volver". No pude reproducir el error en mi máquina porque aparentemente la extensión 1password provoca el evento onLoad incluso cuando se retrocede.

2voto

Ederico Puntos 1007

Resulta que el problema era que Safari no dispara (por defecto) 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 se retrocede.


Más explicaciones a petición de Render:

Así que vamos a asumir 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. Volver
  4. Avanzar

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

Además, 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 eso ayude. Esto no debería importar en la mayoría de los casos, es sólo cuando se escribe un mal código (como lo hizo) que le mordió en el culo :)

-1voto

Gerry Puntos 10709

Aunque visualmente parece que la página se está refrescando, si la respuesta original tenía las cabeceras de caché apropiadas, se servirá desde la caché y no se hará ninguna petición al servidor hasta que la caché esté caducada.

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 ha cargado desde la caché, pero al monitorizar los registros de mi servidor parece que Safari está respetando las cabeceras de la caché que se envían de vuelta después de todo.

Cuando un servidor envía cabeceras que no permiten el almacenamiento en caché con la respuesta, o la caché ha caducado mientras tanto, Safari, al igual que cualquier otro navegador, hará una nueva solicitud al volver a visitar una página del historial.

Tenga en cuenta también que puede desactivar por completo el almacenamiento en caché desde el menú Desarrollo (si está activado). Asegúrese de haber hecho no activar esta opción.

enter image description here

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X