Workbox Service Worker并不总是拦截请求

时间:2018-07-20 08:42:16

标签: service-worker workbox

我有一个基本服务人员,具有以下规则:

workbox.routing.registerRoute(
  /(?:https:\/\/.*)?.(js|css)/,
  workbox.strategies.staleWhileRevalidate(),
);

我还打开了调试功能:

workbox.setConfig({
  debug: true,
});
workbox.core.setLogLevel(workbox.core.LOG_LEVELS.debug);

我注意到有时加载页面时,对/js/index.js的请求会被拦截,但有时却没有。到时,我将获得以下控制台输出:

console output

这些时候,我可以在“网络”选项卡上看到两个对/js/index.js的请求-一个是从Service Worker加载的,另一个是从网络更新SW缓存的请求。

但是,在其他时候,该输出根本不会出现在控制台中。检查“网络”选项卡显示脚本仅从Service Worker加载一次,而根本没有从网络获取。这是很痛苦的,因为我的JS不会经常更新。似乎在手机上比在台式机上都更容易错过这种情况(两者均已通过Chrome测试)。

我似乎有某种比赛条件,但是我不知道它来自何处。有人有想法么?谢谢!

0 个答案:

没有答案