oncached和onupdateready之间的区别

时间:2016-09-04 17:43:03

标签: html5

AppCache API中oncached和onupdateready方法的确切区别是什么?当完全下载清单项时,似乎都会被触发。如果是这种情况,哪个事件先被解雇?

1 个答案:

答案 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);