- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
是否可以让 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/
a: 1---2-3-4--5---6 b: ------T--------- o: ------1234-5---6 使用RxJS,有没有什么算子可以完成上图?我有一个流 A,它是一个随机的事件流,
我们使用 Jenkins 管道进行构建和测试。构建完成后,我们在多个测量设备上运行自动化测试。 为了更好地了解所需的测试时间,我创建了一个测试阶段,它会定期检查测试的状态。当所有测试完成后,管道就完成
我有一个管道阶段,我等待从 sh 脚本返回某个字符串,并且只有当字符串匹配时,才继续到下一个阶段,但是,它无法按预期工作: node('master') { stage("wait for b
我正在使用 wedriverio 4.5: ./node_modules/.bin/wdio -v v4.5.2 我需要等到某个元素存在,如果不存在则处理这种情况。 例如: let element =
因此,如果我使用 await page.waitFor(9000) 或一些硬编码的等待号码,我的函数将等到页面加载。 但是,await page.goto(url, {'waitUntil': 'ne
在学习 JavaScript 时,它建议使用 async/await,因为它比 .then 更具可读性,我同意。不幸的是,当谈到 PWA 服务 worker 时,async 似乎被遗忘了。 尝试为具有
我需要 chrome 注册 ID 将其作为参数发送给 API 调用,这样我就可以获取与注册 ID 对应的消息。我的代码如下: self.addEventListener('push', functio
是否有必要在 respondWith(本身在 fetch 事件中)中使用 waitUntil? respondWith 是否已经waitUntil 收到已解决的 promise ? 对此的一些讨论是
我已经正确安装了 ServiceWorker,我正在使用以下代码监听同步事件: self.addEventListener("sync", function(event) { console.lo
正如您在文档中看到的,waitUntil 方法受到 ElementsCollection 的保护: http://selenide.org/javadoc/3.7/com/codeborne/sele
在 WebdriverIO 中,我想等到浏览器重定向到其中包含单词 project 的 URL。我尝试组合 waitUntil 和 getUrl 函数,但它给出了错误消息。 类型错误:browser.
是否可以让 Service Worker 等待开始处理 fetch 事件,直到 Service Worker 启动时异步工作完成? 我有一个应用程序外壳,其路由在数据中定义。要在 service wo
MDN 建议您执行以下操作来创建和填充服务工作线程缓存: this.addEventListener('install', function(event) { event.waitUntil(
我有一个验证类,它使用线程池来处理它的所有作业。 现在,当用户询问时,我会启动一个线程,通过从磁盘读取作业来为我的验证类提供作业。而且我确信在某一时刻阅读会比处理更快。因此,我想编写一个方法,允许该线
也许我正在翻译domcontentloaded错误,但我希望当时所有元素都可以访问,并且查询它们应该不会有问题。 考虑以下因素: await page.goto(url, { waitUntil: '
在使用 async/await 语法时,我正在为 service worker 中的 promises 而苦苦挣扎。 以下情况:我收到推送通知,想处理点击事件。如果我将“旧”语法与 then 和 ca
我正在使用 puppeteer 来评估我的测试应用程序中基于 javascript 的网页 HTML。 这是我用来确保所有数据都已加载的行: await page.setRequestIntercep
在非常高的级别上,我们单击一个命令建筑物控制点的按钮;打开或关闭灯。单击应该向服务器发送 POST 请求。问题是有时单击按钮但 POST 请求不会发出。该按钮没有指示它是否已被单击的功能(小幅增强)。
我是一名优秀的程序员,十分优秀!