В мобильном Safari не работает автономный режим с манифестом кэша - PullRequest
2 голосов
/ 26 августа 2010

Я работаю над мобильным сайтом для iphone.Я добавил манифест кэша и загрузил его со списком ресурсов, необходимых для автономной работы.Файл манифеста имеет правильный тип содержимого.Если вы просматриваете заголовок ответа для файла, тип содержимого будет text / cache-manifest.Файл манифеста находится здесь:

http://hoodisgood.clientsit.es/cache.manifest

Сайт доступен для просмотра здесь (вам нужно взглянуть на ваш iphone (или симулятор) или на Safari с пользовательским агентом, настроенным наiphone.

http://hoodisgood.clientsit.es/

После просмотра сайта и установки закладки на главном экране я переключаю свой iphone в режим полета, и когда я пытаюсь просмотреть сайт, я не могу. Я получаю предупреждение, что он не может открыться, потому что он не подключен к Интернету. Я указал все файлы, которые мне нужны для автономной работы, в файле манифеста кэша.

Кроме того, исправьте меня, если я 'Я ошибаюсь, но с манифестом кэша разве браузер не должен читать из кэшированного источника, даже когда устройство подключено к сети? Когда я просматриваю сайт, фотографии, которые я не видел, загружаются с сервера, как и должно быть.Я закрываю и снова открываю, ранее просмотренные изображения все еще загружаются с сервера.

Я делаю что-то не так? Я проверил и перепроверил, все кажется правильным, просто не уверен, почему это не работает.

Спасибоs.

Ответы [ 3 ]

3 голосов
/ 07 апреля 2011

Я заметил, что ваш тег не ссылается на манифест.

<html manifest="cache.manifest">

Кроме того, необходимо убедиться, что файл манифеста использует тип mime «text / cache-manifest».

Также убедитесь, что манифест имеет кодировку UTF-8, а не кодировку, которую браузеру трудно понять.

Также я могу порекомендовать вам загрузить сайт в Chrome. Если вы проверите журнал разработчика в Chrome, Chrome напишет очень полезные сообщения об ошибках, которые помогут вам найти причину проблемы.

1 голос
/ 23 октября 2011

У меня была похожая проблема:

Попробуйте указать абсолютные пути в файле манифеста.Это помогло мне, и я использовал субдомен.

Также включите консоль разработчика в Safari и добавьте следующий JS

function logEvent(event) {
  console.log(event.type);
}
window.applicationCache.addEventListener('checking', logEvent, false);
window.applicationCache.addEventListener('noupdate', logEvent, false);
window.applicationCache.addEventListener('downloading', logEvent, false);
window.applicationCache.addEventListener('cached', logEvent, false);
window.applicationCache.addEventListener('updateready', logEvent, false);
window.applicationCache.addEventListener('obsolete', logEvent, false);
window.applicationCache.addEventListener('error', logEvent, false); 

Таким образом вы можете проверить, что происходитв отношении манифеста кеша в браузере и узнайте, произошла ли ошибка.

1 голос
/ 25 февраля 2011

Я заметил, что ваш тег не ссылается на манифест.

<html manifest="cache.manifest">

Кроме того, необходимо убедиться, что файл манифеста использует тип mime "text / cache-manifest".

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...