在使用 Workbox webpack 插件创建我的服务工作者时,我将两者都设置skipWaiting
为clientsClaim
true。在第一个初始加载时,没有先前的服务工作者运行,我看到我所有的预缓存资源都被初始登录页面上的 sw 加载(大概是放入缓存中)。我们会说a.js
,这些资源之一确实在网络选项卡中显示为在这些资源中加载。
然后,我浏览到我的网络应用程序的一个新部分,该部分使用a.js
,我确实a.js
在网络选项卡中看到了负载,但不是来自服务工作者;它像往常一样从网络加载。似乎在第一次初始加载时,软件正在运行并缓存资源,但没有从缓存中提供服务。这是预期的行为吗?
需要明确的是,如果我清除所有服务工作者,然后再次浏览到登录页面,然后刷新并重新加载登录页面,然后浏览到其他部分,我确实可以看到a.js
来自缓存的负载,来自服务工作者。所以看起来服务工作者的初始安装并没有导致它完全活跃。
这是预期的,如果不是,有没有办法解决这个问题?