【发布时间】:2020-06-01 04:33:47
【问题描述】:
我正在尝试使用 ServiceWorker 实现不同的缓存策略。对于以下策略,实现方式是完全明确的:
- 缓存优先
- 仅缓存
- 网络优先
- 仅限网络
例如,在尝试实现缓存优先策略时,在 service-worker 的 fetch 挂钩中,我将首先向 CacheStorage(或任何其他)询问请求的 URL,然后如果存在 respondWith 它,如果不是respondWith网络请求的结果。
但是对于根据thisworkbox定义的stale-while-revalidate策略,我有以下问题:
- 首先是关于机制本身。 stale-while-revalidate 是否意味着在网络响应之前使用缓存,然后使用网络数据或仅使用网络响应来更新您的缓存数据以供下次使用?
- 现在,如果网络被缓存以备下次使用,那么哪些场景包含它的真实用例?
- 如果应该在应用程序中立即替换网络响应,那么如何在 service worker 中完成呢?因为钩子会被缓存的数据解析,然后网络数据无法解析(使用
respondWith)。
【问题讨论】:
标签: caching fetch service-worker service-worker-events