我正在使用html5 Manifest存储应用程序以供离线使用,但我希望能够在应用程序在线时更新缓存中的数据。我好好看看周围,找不到任何可以帮助我的东西。
答案 0 :(得分: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);
}