【问题标题】:Workbox cache strategies not working properly工作箱缓存策略无法正常工作
【发布时间】:2019-11-24 17:34:08
【问题描述】:

我正在使用 create-react-app 和 react-app-rewired-workbox 构建一个反应应用程序来使用工作箱。

我想使用 workbox 的 networkOnly 策略,但不知何故它不起作用。即使我使网络脱机,服务人员也会以缓存响应

我也尝试了其他策略,但工作箱仅使用它的默认行为并首先使用缓存响应。

self.addEventListener('install', event => event.waitUntil(self.skipWaiting()));
self.addEventListener('activate', event => event.waitUntil(self.clients.claim()));

workbox.precaching.precacheAndRoute(self.__precacheManifest);

workbox.routing.registerRoute("/", new workbox.strategies.NetworkOnly());

这是它的行为方式 预缓存所有路由

网络离线

预缓存正在离线响应

service worker 正在处理请求

我期望的是,当我使用 networkOnly 策略时,它不应该以缓存响应。 Workbox 在响应任何请求时也不会记录它正在使用的策略。

【问题讨论】:

    标签: javascript reactjs service-worker create-react-app web-worker


    【解决方案1】:

    根据precache选项,需要去掉这行,因为路由响应Manifest precache。

    
    workbox.core.setLogLevel(workbox.core.LOG_LEVELS.debug);
    
    self.addEventListener('install', event => event.waitUntil(self.skipWaiting()));
    self.addEventListener('activate', event => event.waitUntil(self.clients.claim()));
    
    
    // We need this in Webpack plugin (refer to swSrc option): https://developers.google.com/web/tools/workbox/modules/workbox-webpack-plugin#full_injectmanifest_config
    // REMOVE THIS:
    //workbox.precaching.precacheAndRoute(self.__precacheManifest);
    
    workbox.routing.registerRoute("/", workbox.strategies.networkOnly());
    
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-10-26
      • 1970-01-01
      • 2023-04-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多