AppCache API中oncached和onupdateready方法的确切区别是什么?当完全下载清单项时,似乎都会被触发。如果是这种情况,哪个事件先被解雇?
答案 0 :(得分:2)
第一次下载缓存时会触发oncached事件。
当先前缓存的资源已更新时,onupdateready事件会被触发,通常是在检测到对清单文件的更新时。这不会自动更新缓存,只是下载新资源。应该调用swapCache方法来使用新下载的方法切换旧缓存。
来自this link(强调我的):
window.applicationCache.oncached - 在调用下载eventhandler之后,在下载清单文件中的所有资源时调用此事件处理程序。在此事件处理程序之后不再调用eventhandler。
window.applicationCache.onupdateready - 在调用下载事件处理程序后调用此事件处理程序,当已更新到现有应用程序缓存并且已下载清单文件中的所有资源时。在此事件处理程序之后不再调用eventhandler。
可以按照here所解释的方式添加每个事件的事件侦听器。
appCache.addEventListener('cached', function(e) {
// Cache event code
}, false);
appCache.addEventListener('updateready', function (e) {
appCache.swapCache();
window.location.reload();
}, false);