我正在尝试使用缓存优先策略实现 PWA,该策略还尝试通过在 waitUntil() 中获取来更新缓存资产。如果有多个请求在(几乎)同时开始,这会阻塞并使副线程并发吗?这是我的代码: self.addEventListener("fetch", (oEvent) => { oEvent.respondWith(caches.match(oEvent.request).then((oRes) => { if (oRes) { oEvent.waitUntil(fetch(oEvent.request) .then((oFetchRes) => { return caches.open(DYNAMIC_CACHE).then((oCache) => { oCache.put(oEvent.request.url, oFetchRes); }); })) return oRes } else { return fetch(oEvent.request) .then((oFetchRes) => { return caches.open(DYNAMIC_CACHE).then((oCache) => { oCache.put(oEvent.request.url, oFetchRes.clone()); return oFetchRes; }); }) .catch(() => { return new Response(JSON.stringify({}), { status: 503, statusText: "app_offline_and_missing_resource", }); }) }}) );});欢迎任何帮助,我仍然是 PWA 新手。
1 回答
饮歌长啸
TA贡献1951条经验 获得超3个赞
仔细阅读https://developers.google.com/web/fundamentals/instant-and-offline/offline-cookbook/#the_cache_machine_-_when_to_store_resources文章让我得到了想要的答案:stale-while-revalidate 方法是什么我在寻找。
添加回答
举报
0/150
提交
取消