2013-10-02 4 views
0

Я использую html5 Manifest для хранения приложения для использования в автономном режиме, однако я хочу иметь возможность обновлять данные в кеше, когда приложение находится в сети. Я хорошо осмотрелся и не могу найти что-нибудь приличное, чтобы помочь мне.Обновление манифеста кэша приложений

ответ

2

Вам просто нужно изменить файл манифеста на сервере. Браузер проверяет, был ли файл манифеста изменен с момента последнего кэширования всех активов, если он у него будет сгенерировать событие updateready. Затем браузер запрашивает все новые/измененные активы и кэширует их. В следующий раз, когда страница будет загружена, новые активы будут использоваться. Вы можете заставить браузер использовать эти новые активы, как только он их получит, заставляя страницу перезагружать:

if ('applicationCache' in window) { 
    // Check if a new cache is available on page load. 
    window.addEventListener('load', function(e) { 
    window.applicationCache.addEventListener('updateready', function(e) { 
     if (window.applicationCache.status == window.applicationCache.UPDATEREADY) { 
     // Browser downloaded a new app cache. 
     try { window.applicationCache.swapCache() } catch(err) { } 
     // Swap it in and reload the page to get the new hotness. 
     var reload = confirm('A new version of this site is available. Load it?'); 
     if (reload) window.location.reload(); 
     } 
    }, false); 
    }, false); 
} 
Смежные вопросы