我如何在Service Worker中缓存动态URL?它与预缓存有关系吗?我正在使用ReactJS默认serviceWorker
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我如何在Service Worker中缓存动态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),可以通过使用特定于应用程序的正则表达式来指定自定义兑现规则。
希望对您有帮助!
以上是关于我如何在Service Worker中缓存动态URL?它与预缓存有关系吗?我正在使用ReactJS默认serviceWorker的主要内容,如果未能解决你的问题,请参考以下文章
React&Service Worker - 缓存内容 - 通知用户
带有 PWA 和 Service Worker 的 NGRX 离线缓存
Workbox Service Worker 不在缓存中存储图像和 API 响应