Sí, el navegador Safari no maneja la caché del botón hacia atrás/adelante del mismo modo que lo hace Firefox y Chrome. Especialmente iframes como vimeo o youtube videos son almacenados en caché apenas aunque haya un nuevo iframe.src.
Encontré tres formas de manejar esto. Elija lo mejor para su caso. soluciones probadas en Firefox y Safari 53 10,1
1. Detectar si el usuario está utilizando el botón de retroceso/foreward, vuelva a cargar la página entera o sólo recargar los marcos flotantes en caché mediante la sustitución de la src
if (!!window.performance && window.performance.navigation.type === 2) {
// value 2 means "The page was accessed by navigating into the history"
console.log('Reloading');
//window.location.reload(); // reload whole page
$('iframe').attr('src', function (i, val) { return val; }); // reload only iframes
}
2. recargar toda la página si la página se almacena en caché
window.onpageshow = function (event) {
if (event.persisted) {
window.location.reload();
}
};
3. eliminar la página de la historia para que los usuarios no pueden v isit la página de nuevo por la espalda/botones de avance
$(function() {
//replace() does not keep the originating page in the session history,
document.location.replace("/Exercises#nocache"); // clear the last entry in the history and redirect to new url
});
posible duplicado de [botón de retroceso Mobile Safari] (http://stackoverflow.com/questions/11979156/mobile-safari-back-button) –
@MikaTuupola la respuesta debe marcarse como la respuesta correcta. –
Este es el humilde problema que también experimenté debido al mismo comportamiento de BFCache en Safari: http://stackoverflow.com/questions/40727989/is-onbeforeunload-cached-on-safari-macos/40896361?noredirect=1#comment69043078_40896361 – juanmirocks