javascript - 工作箱缓存策略无法正常工作
问题描述
我正在使用 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());
我期望的是,当我使用 networkOnly 策略时,它不应该用缓存响应。Workbox 在响应任何请求时也不会记录它正在使用的策略。
解决方案
根据 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());
推荐阅读
- javascript - 建议使用 FCM 消息转换 onCreate firebase 云函数触发器以支持异步/等待和数据库读取
- c - STM32F103C8 Bluepill板HAL_delay()问题
- sublimetext3 - 尝试在 WSL ubuntu18.04 操作系统上安装/apt 更新时出现 404 Not Found [IP: 91.189.95.85 80] 错误
- maven - 缺少junit依赖的Fat jar
- unix - solaris 11.4 中的重启服务
- android - 我无法让 Here Maps 在 Android Studio 中工作
- laravel - laravel 传递数组查看对象
- java - Eclipse 中的“当前正在使用的工作区”
- javascript - JS:高阶函数和map、reduce和filter
- android - 我运行我的项目,但它给出了错误这是什么我不知道