Файлы автономного приложения HTML5, использующие Cache Manifest, никогда не обновляются - PullRequest
3 голосов
/ 22 марта 2012

Я разработал мобильное приложение HTML5 с jQueryMobile и пытаюсь предоставить автономную функцию, позволяющую пользователям использовать приложение без подключения к Интернету.Я следовал этому руководству: http://www.html5rocks.com/en/tutorials/appcache/beginner/

  • Был создан файл манифеста.
  • Текст / кэш-манифест mime-типа был добавлен в файл .htaccess.
  • Страницы содержат файл манифеста в теге HTML.

Я проверяю его, и, похоже, он работает.Когда я не подключен, веб-навигация между моими страницами все еще работает.Тем не менее я обнаружил две основные проблемы:

1) Автономная навигация работает, когда я подключаюсь к приложению, а затем отключаю его.При открытии приложения из браузера мобильного устройства с записью URL-адреса в адресной строке без подключения веб-приложение не загружается !!Хотя я посещал веб-приложение раньше.

2) Файлы веб-приложений никогда не обновляются.Например:

  • Я что-то изменяю в отсканированном файле CSS.
  • Я обновляю комментарий в файле манифеста, чтобы сообщить приложению обновить его файлы.
  • Файл CSS никогда не обновляется.Текущая версия - предыдущая.

Я пытаюсь определить статус кэша из JavaScript для управления обновлением страницы:

function checkCacheVersion(){
    var webappCache = window.applicationCache;
    if(webappCache){
        //0-> unchached
        //1-> idle
        //2-> checking
        //3-> downloading
        //4-> updateready
        console.log('Cache state= ' +  webappCache.status);
        if(webappCache.status == window.applicationCache.UPDATEREADY){
            console.log('[Cache] There is an update waiting for reload');
            webappCache.swapCache();
            location.reload();
        }
    }
}

Тем не менее, статус кэша всегда "простаивает"" статус.Что это значит?Я понимаю, что я получил бы статус "Uncached", если кэш не был настроен должным образом.Правильно?

С другой стороны, CSS-файл примера обновляется только в том случае, если я удаляю его из файла Manifest.Таким образом, браузер обнаруживает, что файл не перехвачен и получает его правильно (я имею в виду, Cache правильно настроен, верно?).

Не могли бы вы помочь мне выяснить, где проблема?Большое спасибо !!

Серги

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