【发布时间】:2018-08-07 09:27:20
【问题描述】:
在使用 Workbox webpack 插件创建我的 service worker 时,我将 skipWaiting 和 clientsClaim 都设置为 true。在第一个初始加载时,没有先前的服务工作者运行,我看到我所有的预缓存资源都被初始登录页面上的 sw 加载(大概是放入缓存中)。其中一个资源,我们会说a.js,确实在网络选项卡中显示为在这些资源中加载。
然后,我浏览到使用 a.js 的 Web 应用程序的新部分,我确实在网络选项卡中看到了 a.js 加载,但 不是 来自服务工作者;它像往常一样从网络加载。似乎在第一次初始加载时,软件正在运行并缓存资源,但没有从缓存中提供服务。这是预期的行为吗?
需要明确的是,如果我清除所有服务人员,然后再次浏览到着陆页,然后刷新并重新加载着陆页,然后浏览到那个其他部分,我确实可以看到a.js 从缓存中加载,形成服务工作者。所以看起来 service worker 的初始安装并没有导致它完全活跃。
这是预期的,如果不是,有没有办法解决这个问题?
【问题讨论】:
-
你解决了吗?
标签: service-worker workbox workbox-webpack-plugin