Кеш приложения: странное поведение на iPad - PullRequest
2 голосов
/ 26 сентября 2011

Я создаю веб-сайт, где пользователь может сказать, какие элементы он хочет кэшировать. На основании этого создается файл манифеста. Делая это, пользователь все еще может просматривать веб-сайт, когда он не в сети. Это все работает нормально в Google Chrome. Но на iPad он не работает как надо. Иногда вещи кэшируются, иногда нет, даже страницы, которые я посетил.

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

Итак, что мы делаем:

  • включить WiFi
  • просмотр на сайте
  • выполнить некоторые настройки, чтобы некоторые страницы / изображения / ... были добавлены в файл манифеста
  • выключить WiFi
  • вернуться к обновлению сафари / просмотреть страницы, которые должны быть кэшированы.

Иногда на одном iPad (это iPad 1) он работает точно так же, как и должен, но иногда он вообще не работает. На другом iPad (это iPad 2) он никогда не работает полностью так, как должен. Просто некоторые случайные результаты.

Похоже, что результаты отличаются, когда мы полностью выключаем Safari, а затем очищаем кеш и затем выполняем весь процесс загрузки и кэширования ...

Кто-нибудь может мне помочь с этой проблемой? Это настоящая боль в заднице на данный момент ...: (

Ответы [ 4 ]

2 голосов
/ 22 марта 2012
  1. Открыть веб-сервер (IIS)
  2. Выбрать веб-сайт
  3. Открыть MIME-тип
  4. Добавить или изменить text/cache-manifest
  5. Сбросить IISв командной строке iisreset

У меня работает.

0 голосов
/ 20 июня 2013

Я хотел бы немного повторить Pieter-Paulus Vertongen, у меня был подобный опыт с хостингом Windows.

Согласно консоли отладки в Safari, MIME-файл для файла манифеста неправильно читался и ничегоВ результате был загружен.

Я скопировал все свои файлы, включая файл .htaccess, на сервер linux без изменения содержимого в файлах ... и затем кеширование работало прекрасно.

Так что да, возможно, это может быть проблемой того, где файлы размещены.Используйте консоль отладки и код Джонатана Старка, чтобы узнать:

http://jonathanstark.com/blog/debugging-html-5-offline-application-cache?filename=2009/09/27/debugging-html-5-offline-application-cache/

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

Похоже, проблема не имеет никакого отношения к кешу приложения.Каким-то образом была проблема с файлами cookie / тем, как я динамически создавал файл манифеста.

0 голосов
/ 26 сентября 2011

Я также столкнулся с некоторыми проблемами при кэшировании на ipad.

  1. MIME-тип файла манифеста установлен неправильно из-за хостинга Windows. Стандартным типом MIME на сервере Windows является «application / x-ms-manifest». Это было создано, когда приложения ClickOnce ожили. Тип MIME, необходимый для работы в сафари: «text / cache-manifest»

  2. Размер кэша на ipad слишком мал (вы должны получить предупреждение, чтобы увеличить его)

  3. Ipad нужно время! Я заметил, что кеш не заполняется, когда вы видите все ресурсы или когда веб-сайт «загружен». Дайте ему вдвое больше обычного времени для загрузки, прежде чем разместить веб-сайт на рабочем столе.

  4. Кэш кеша :) iPad перезагружает файлы только при изменении даты изменения на сервере. Поэтому, когда вы действительно хотите провести тестирование, очистите весь кэш на iPad, удалите ссылку на главном экране и снова загрузите все свои файлы.

Вывод: отнимает много времени!

Подсказка: включите отладочную консоль в Safari на рабочем столе или iPad. Это дает честное представление о том, что вы сделали что-то не так или это проблема с кешем на iPad.

...