HTML-кеш автономного приложения, получение сведений об ошибке

Как часть экрана загрузки для автономного веб-приложения, которое я создаю (используя кеш manifest), я столкнулся с проблемами совместимости браузера.

В последних версиях Chrome, FireFox и Safari я могу загрузить файлы из манифеста кэша и выйти в автономный режим, но в iOS 4 Mobile Safari возникает событие window.applicationCache.error. Аргумент события, который я получаю обратно, полностью пуст. Кроме того, я включил консоль отладки на своем iPad, но соответствующей информации об ошибке нет.

Кто-нибудь знает, есть ли способ извлечь информацию об ошибке из события ошибки автономного кэширования?


person Peder Rice    schedule 25.02.2011    source источник


Ответы (2)


У меня была уникальная проблема: я обслуживал автономный манифест через универсальный обработчик ASP.NET (.ashx), а Safari категорически отказывался открывать файл. Я не уверен, что .ashx является каким-то типом защищенного расширения файла в Safari, но диагностировать ошибку было сложно.

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

person Peder Rice    schedule 25.02.2011

Если мобильный Safari будет постоянно сталкиваться с ошибкой кэширования, но Safari на ПК или Mac будет выполнять кэширование, возможно, вы очистили кэш браузера, не закрывая все экраны браузера, а также закрывая браузер. Очистка кеша браузера также удаляет кеши приложений, особенно базу данных кеша. Пока открыт экран браузера, мобильное сафари не воссоздает базу данных кеша приложения. В результате этого каждая операция кэширования приложения завершится ошибкой из-за отсутствия базы данных. PC-Safari никогда не уничтожает файл базы данных, но удаляет записи в базе данных.

Насколько мне известно, с помощью JavaScript невозможно обнаружить эту ситуацию.

person iPhAnd    schedule 28.02.2011