У меня есть iPhone webapp, который использует манифест кэша для работы в автономном режиме. Я добавляю webapp на свой домашний экран, использую его (скажем, прокрутите до определенного места на странице), затем вернитесь на рабочий стол. Когда я снова открываю приложение, на короткое время я вижу, где я был (в этом прокрученном месте на этой странице), но затем приложение "перезагружается", и я получаю прокрутку вверху главной страницы. Есть ли способ предотвратить эту "перезагрузку"? Это происходит даже в режиме самолета (т.е. все работает с кешем).
Предотвращение перезагрузки кэшированного iPhone webapp (прокрутка вверх)
Ответ 1
Вы видите только начальное изображение по умолчанию, которое представляет собой только скриншот последнего места, в котором вы были. Это не "перезагрузка"; приложение не было загружено для начала.
Найдите "apple-touch-startup-image", чтобы установить реальное загрузочное изображение.
Ответ 2
То, с чем я боюсь, заключается в том, что приложение, по-видимому, остается "в памяти" дольше, если я использую обычный Safari, а не работает в режиме "apple-mobile-web-app-able". В более позднем случае что-то так же просто, как нажатие кнопки "домой", затем переключение задачи в приложение вызывает перезагрузку. Выполнение того же самого в Safari часто не перезагружается. Так что я хуже, используя "apple-mobile-web-app-able".
Ответ 3
Я не верю, что есть реальное событие "перезагрузки". onload и onunload - все, что мы получаем.
обработчик onload запускается, как если бы вы впервые причаливали к странице.
обработчик onunload является ключом к очистке старого содержимого.
Мне нравится предоставлять альтернативный контент для людей, которые возвращаются в мое веб-приложение.
window.onunload=function(){
document.getElementsByTagName('body')[0].className+=' unloading'
}
И пусть CSS выполняет грязную работу, чтобы скрыть большую часть тела и показать альтернативный контент.
(этот ответ не зависит от jQuery или других фреймворков)
Ответ 4
//при загрузке
window.scroll(0,0);
Чтобы убедиться, что во время запуска не отображается старый контент, я использую его на своей странице:
window.addEventListener('unload', function() {$ ('body'). hide();});
Таким образом, последнее состояние страницы пуст и является тем, что отображается пользователю, когда страница снова открывается.