javascript - 如何在服务人员中缓存动态 url?它与预缓存有什么关系吗?我正在使用 ReactJS 默认 serviceWorker
问题描述
在我的 Main.js 文件中,我有以下代码:
import * as serviceWorker from './serviceWorker';
/*
some code
*/
ReactDOM.render(<Main />,document.getElementById('app'));
serviceWorker.register()
这个 serviceWorker 它是默认从 create-react-app 操作创建的,但我必须从源代码复制它,因为我没有使用 create-react-app 创建应用程序。
serviceWorker 在 / 范围内查找“service-worker.js”文件。在以下行中:
const swUrl = `/service-worker.js`;
使用此配置,我可以缓存 service-worker.js 文件的 PrecacheConfig 变量中提到的所有内容,例如 /js/app.js
当涉及到动态网址时,例如/myapp/{id}/test/
. 我确定不应该对所有这些动态 url 进行预缓存,并且应该在用户访问页面时缓存它们,但是我在哪里以及如何缓存它们?
解决方案
我建议使用 Workbox https://developers.google.com/web/tools/workbox来管理您的 Service Worker 功能。使用 workbox.routing 模块 ( https://developers.google.com/web/tools/workbox/modules/workbox-routing ),您可以使用特定于您的应用正则表达式来指定自定义的兑现规则。
希望对您有所帮助!
推荐阅读
- android-dialer - Android自定义拨号器 - 未接来电的实现缺失?
- java - 类型推断因方法引用而失败
- zabbix - 如何为连续 3 个 Windows 登录失败事件创建警报?
- java - 为什么不能使用 Apache POI 在这个 excel 文件中写入数据?
- amazon-web-services - 无法再连接到 AWS Windows 或 Linux 实例
- variables - Twilio - 使用经典函数如何创建和更新持续存在的变量?
- api - 使用 Checkpoint API 创建 Cpmi 用户
- php - mysql中列的SUM计算错误
- java - 我可以在 IntelliJ 显示的 Javadocs 中增加段落周围的填充吗?
- javascript - 将下一步按钮添加到分步加载栏