【发布时间】:2020-11-28 15:53:23
【问题描述】:
我有一个需要离线工作的 Angular 网站。它需要的部分内容是来自 API 的一些数据。这可能是陈旧的数据,所以我的策略是尝试 API,如果失败,则从缓存中获取。
我使用dataGroups:
"dataGroups": [
{
"name": "offlineData",
"urls": [ "/api/offline" ],
"cacheConfig": {
"maxSize": 1000,
"maxAge": "100d",
"timeout": "500u",
"strategy": "freshness"
}
}
]
但是,如果用户安装应用程序(使用清单)并立即离线,则缓存中不存在 API 数据,因为 dataGroups 不会预取。
那么,我应该挂钩并获取数据的正确位置在哪里?我已经在 app.component 和 ServiceWorker 更新服务中进行了尝试(这实际上与从那里调用的 app.component 相同)。
无论哪种方式,这似乎是在处理服务工作者配置之前调用 API,因此它不会被添加到缓存中。
将其添加到哪个合适的生命周期钩子,以便它执行 prefetch,然后 ngsw 配置将知道?
【问题讨论】:
标签: angular service-worker angular-service-worker