gpt4 book ai didi

asynchronous - 是否有 Service Worker 启动 waitUntil 来延迟处理获取?

转载 作者:行者123 更新时间:2023-12-05 01:30:09 28 4
gpt4 key购买 nike

是否可以让 Service Worker 等待开始处理 fetch 事件,直到 Service Worker 启动时异步工作完成?

我有一个应用程序外壳,其路由在数据中定义。要在 service worker 启动时安装特定的路由获取处理程序,我需要从 IndexedDB(异步)查找路由数据。

不幸的是,Service Worker 在 IndexedDB 查找完成并设置路由的提取处理之前就开始接受提取事件。

目前,我只是为此硬编码一个特殊情况的默认处理程序,但最好让 service worker 延迟处理 fetch 事件,直到在 service worker 启动时完成 IndexedDB 处理。

我没有看到“waitUntil”的方法,也许我错过了?

最佳答案

一个代码片段会有所帮助,因为我对这个问题不是 100% 清楚......但是做一些猜测:

在您解决提供给 event.waitUntil 的 promise 之前,当您监听安装事件时,SW 不应拦截任何网络请求,因此在那里进行 IDB 设置应该没问题。

一般来说,让 fetch 事件监听器运行而不做任何事情也很好,因为在这种情况下浏览器将正常回退到网络。

总的来说,还值得牢记的是,SW 可以而且确实经常被杀死,因此局部变量不会在接收不同事件之间停留。如果在处理不同的事件时需要一些数据,则应将其保存在 IDB 或 Cache API 中并再次从那里获取。

关于asynchronous - 是否有 Service Worker 启动 waitUntil 来延迟处理获取?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34009861/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com