在显示Web应用程序之前完成加载缓存清单

时间:2015-06-12 02:53:37

标签: javascript html cache-manifest

当您第一次正常加载带有缓存清单的Web应用程序时,将显示HTML页面,然后缓存清单开始在后台下载指定的文件。但是,我更喜欢缓存清单在初始页面出现在屏幕上之前完成下载每个列出的文件。这是在用户看到初始页面的瞬间,他或她可以断开与Internet的连接,并按预期使用Web应用程序的所有功能。

我有办法做到这一点吗?

1 个答案:

答案 0 :(得分:0)

来源:https://developer.tizen.org/dev-guide/2.2.1/org.tizen.web.appprogramming/html/tutorials/w3c_tutorial/storage_tutorial/app_cache_managing.htm

我会查看App缓存事件,尤其是updateready事件。

document.body.style.display = 'none'; //this should probably be in your stylesheet.    

applicationCache.addEventListener('cached', function() {
    /* All resources for update are downloaded */
    // show your webpage here
    document.body.style.display = 'block';
});

可能还需要查看链接引用中列出的其他一些事件。如果没有更新,我不知道这个事件是否会触发。

但是,如果没有清单文件,或者没有可用的更新等,则有几个事件。但看起来很简单。如果您有任何问题,请发表评论。

修改

您还需要侦听noupdate事件以处理清单未更新的情况。 (谢谢@Applecot)

applicationCache.addEventListener('noupdate', function() {
    //no updates, display the page
    document.body.style.display = 'block';
});