Как предотвратить перезагрузку веб-страницы из кэша при использовании мобильного браузера Safari?
Mobile Safari использует специальный механизм кешированияPage Cache
(Вот) который в основном поддерживает текущую страницу, но находится в спящем режиме, когда мы переходим на другую страницу. Таким образом, он может немедленно отобразить предыдущую страницу в ее последнем состоянии, когда пользователь нажимаетback
кнопка.
Это полезно для навигации и просмотра веб-страниц, но в особых случаях это раздражает, так как вам может понадобиться получать свежую копию страницы каждый раз, когда пользователь переходит на эту страницу. (в моем случае у меня есть страницы: логин и главная страница).
Я полностью осознаю, что ничто не мешает пользователю открывать несколько вкладок одного и того же приложения. Я не обеспокоен этим.
кросс-браузерное решение для предотвращения кэширования страницы не помогает, так как Safari держит страницу открытой, но невидимой и приостановленной.
window.onpageshow и обработкаevent.persisted
не помогает, так как кажется, что браузер не выполняетonpageshow
событие по некоторым причинам во второй раз (когда вы нажимаетеback
кнопка).
Заметка для тех кто не знает чтоonpageshow
событие о: Apple не рекомендует использоватьload
а такжеunload
события, потому что с концепциейкеш страниц эти события не имеют четкого смысла. Так,onpageshow
должен делать то, что мы ожидаем отload
событие.