我有一个基本服务人员,具有以下规则:
workbox.routing.registerRoute(
/(?:https:\/\/.*)?.(js|css)/,
workbox.strategies.staleWhileRevalidate(),
);
我还打开了调试功能:
workbox.setConfig({
debug: true,
});
workbox.core.setLogLevel(workbox.core.LOG_LEVELS.debug);
我注意到有时加载页面时,对/js/index.js
的请求会被拦截,但有时却没有。到时,我将获得以下控制台输出:
这些时候,我可以在“网络”选项卡上看到两个对/js/index.js
的请求-一个是从Service Worker加载的,另一个是从网络更新SW缓存的请求。
但是,在其他时候,该输出根本不会出现在控制台中。检查“网络”选项卡显示脚本仅从Service Worker加载一次,而根本没有从网络获取。这是很痛苦的,因为我的JS不会经常更新。似乎在手机上比在台式机上都更容易错过这种情况(两者均已通过Chrome测试)。
我似乎有某种比赛条件,但是我不知道它来自何处。有人有想法么?谢谢!