Service Worker文件和脱机模式

时间:2018-04-14 12:44:33

标签: service-worker progressive-web-apps

我是否正确理解PWA中的服务器工作文件不应由PWA缓存?据我所知,一旦注册,安装和激活,它将作为一个独立于浏览器环境中的页面的实体退出,并在找到新版本后由浏览器重新加载(我在这里省略了不重要的细节)。所以我认为没有理由缓存服务工作者文件。浏览器通过将其存储在内存(或某处)中来缓存它。我认为缓存服务工作文件会使其代码更新的发现变得复杂,并且不会带来任何好处。

但是,如果未缓存服务工作程序,则在刷新以脱机模式注册它的页面时尝试检索它将会出错,因为在网络关闭时服务工作程序文件不可用。

消除此错误的最佳方法是什么?或者我应该缓存服务工作者文件?什么是最有效的策略?

我正在阅读有关PWA的一些内容,但没有找到明确的解释。如果可能的话,请帮助我。

1 个答案:

答案 0 :(得分:1)

你是对的。永远不要缓存service-worker.js。

为了避免尝试在没有连接的情况下注册而产生的错误,只需从window.navigator.onLine检查连接状态,并在离线时跳过调用寄存器。

如果需要,您可以监听网络状态更改并在以后调用注册。