Очистка и обновление кэша приложений 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 получает этот статус, когда ресурсы, которые только что загружены... то есть.. произошло предыдущее событие "загрузки"... и до этого "проверка",....