Очистка и обновление кэша приложений html5 через javascript
Я прихожу к этой проблеме довольно часто, когда некоторые пользователи имеют поврежденный кэш приложений (HTML 5).
Я обновляю файл манифеста каждый раз, когда есть новый релиз, хотя некоторые пользователи иногда получают поврежденный кэш приложений.
В таком случае я хочу полностью понять, что есть в кэше приложений, и загрузить весь свежий контент с сервера.
Есть ли способ использовать Javascript?
Ответы
Ответ 1
Согласно следующей статье о
http://www.w3schools.com/html5/html5_app_cache.asp
существует три способа использования кэша приложений reset:
- Пользователь очищает кеш браузера
- Файл манифеста изменен
- Кэш приложения обновляется программно
Более подробную информацию о программном обновлении кеша приложений можно найти здесь:
http://www.html5rocks.com/en/tutorials/appcache/beginner/
Это выглядит примерно так:
var appCache = window.applicationCache;
appCache.update(); //this will attempt to update the users cache and changes the application cache status to 'UPDATEREADY'.
if (appCache.status == window.applicationCache.UPDATEREADY) {
appCache.swapCache(); //replaces the old cache with the new one.
}
Ответ 2
Этот довольно старый, но, поскольку я вижу неправильный ответ, проголосовавший, мне хотелось дать какой-то намек...
Если у кого-то есть проблемы с просмотром спецификации, вы можете видеть, что нет способа заставить код перезагрузить кеш, если нет изменений в манифесте, и что когда "appCache.status == window.applicationCache.UPDATEREADY" истинно.
Посмотрите здесь http://www.w3.org/TR/2011/WD-html5-20110525/offline.html
"updateready Ресурсы, перечисленные в манифесте, были повторно загружены, а script может использовать swapCache() для переключения в новый кеш."
Итак, внимательно прочитав его, вы обнаружите, что applicationCache получает этот статус, когда ресурсы, которые только что загружены... то есть.. произошло предыдущее событие "загрузки"... и до этого "проверка",....