Предотвращение перезагрузки кэшированного веб-приложения iPhone (прокрутка вверх) - PullRequest
11 голосов
/ 19 июля 2010

У меня есть веб-приложение для iPhone, которое использует манифест кэша для работы в автономном режиме. Я добавляю веб-приложение на домашний экран, использую его (скажем, прокручиваю в определенное место на странице), затем возвращаюсь на домашний экран. Когда я снова открываю приложение, на короткое время я вижу, где я находился (в этом месте прокрутки на этой странице), но затем приложение «перезагружается», и я прокручиваюсь вверху главной страницы. Есть ли способ предотвратить эту «перезагрузку»? Это происходит даже в режиме полета (т.е. все работает вне кеша).

Ответы [ 4 ]

3 голосов
/ 29 ноября 2010

Вы просто видите начальный образ по умолчанию, который представляет собой скриншот последнего места, где вы были. Это не «перезагрузка»; приложение не было загружено с самого начала.

Найдите «apple-touch-startup-image», чтобы установить реальное изображение загрузки.

2 голосов
/ 11 января 2011

С чем я сейчас борюсь, так это то, что приложение, похоже, дольше остается «в памяти», если я использую обычный Safari, а не в режиме «apple-mobile-web-app-enabled». В более позднем случае что-то простое: нажатие кнопки «Домой» и переключение задач обратно в приложение вызывает перезагрузку. Делать то же самое только в Safari часто не перезагружается. Так что мне хуже от использования "apple-mobile-web-app-способны".

1 голос
/ 14 октября 2010

Я не верю, что произошло реальное событие перезагрузки.onload и onunload - это все, что мы получаем.

обработчик onload запускается так, как будто вы впервые заходите на страницу.* Обработчик является ключом к очистке старого контента.

Мне нравится предоставлять альтернативный контент людям, которые возвращаются в мое веб-приложение.

window.onunload=function(){
  document.getElementsByTagName('body')[0].className+=' unloading'
}

И пусть CSS выполняет грязную работу, чтобы скрыть большую часть тела и показать альтернативный контент.

(этот ответ не зависит от jQuery или других структур)

0 голосов
/ 03 октября 2010

// под нагрузкой

window.scroll(0,0);

Чтобы при запуске не отображалось старое содержимое, я использую это на своей странице:

window.addEventListener ('unload', function () {$ ('body'). Hide ();});

Таким образом, последнее состояние страницы является пустым и является тем, что отображается пользователю при повторном открытии страницы.

...