Да, браузер Safari не обрабатывает кэш кнопок назад / вперед так же, как Firefox и Chrome.Особенно iframe, такие как видео vimeo или youtube, кешируются с трудом, хотя есть новый iframe.src.
Я нашел три способа справиться с этим.Выберите лучшее для вашего случая.Решения, протестированные на Firefox 53 и Safari 10.1
1.Определите, использует ли пользователь кнопку «назад / вперед», затем перезагрузите всю страницу или перезагрузите только кэшированные фреймы, заменив 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.перезагрузить всю страницу, если страница кэшируется
window.onpageshow = function (event) {
if (event.persisted) {
window.location.reload();
}
};
3.удалить страницу из истории, чтобы пользователи не могли снова зайти на страницу с помощью кнопок назад / вперед
$(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
});