- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
是否有必要在 respondWith
(本身在 fetch
事件中)中使用 waitUntil
? respondWith
是否已经waitUntil
收到已解决的 promise ?
对此的一些讨论是 here ,其中给出了以下简单示例,其中使用了两者:
addEventListener('fetch', event => {
event.respondWith(
fetch(whatever).then(response => {
event.waitUntil(addThisToTheCache(response));
return response;
})
);
});
但是没有 waitUntil
就不能写这个吗?如下:
addEventListener('fetch', event => {
event.respondWith(
fetch(whatever).then(response => {
return addThisToTheCache(response).then(() => {
return response;
});
})
);
});
最佳答案
这将使浏览器处理和显示响应延迟两秒:
addEventListener('fetch', event => {
event.respondWith(async function() {
const response = await fetch(event.request);
await processResponseForTwoSeconds(response);
return response;
}());
});
这不会:
addEventListener('fetch', event => {
event.respondWith(async function () {
const response = await fetch(event.request);
event.waitUntil(processResponseForTwoSeconds(response));
return response;
}());
});
waitUntil
告诉 service worker 为正在进行的任务保持事件状态,但不会延迟响应。
关于javascript - 在获取事件中同时使用 respondWith 和 waitUntil,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47282211/
在未指定respondWith 的情况下从 Service Worker 中的 fetch 事件处理程序返回是否有效?在那种情况下会发生什么? fetch 事件是否仍以默认方式正确处理? self.a
是否有必要在 respondWith(本身在 fetch 事件中)中使用 waitUntil? respondWith 是否已经waitUntil 收到已解决的 promise ? 对此的一些讨论是
在服务 worker 中,我的获取处理程序如下所示: self.addEventListener('fetch', function (event) { event.respondWith(
我的 serviceworker 有这样的逻辑,当一个获取事件发生时,首先它获取一个包含一些 bool 值(不是 event.request.url)的端点并根据我调用的值检查该值 事件.respon
我正在使用 Jasmine 2.0.4 和 jasmine-ajax 2.99.0 来尝试测试调用 Web 服务的模块。代码如下: define(['models/data-service',
当使用 jasmine-ajax 库测试 JavaScript 代码时,我可以模拟 ajax 响应。特别是,我可以定义将给予特定 ajax 请求的响应。似乎有(至少)两种不同的方法可以做到这一点: 方
服务 worker “获取”不返回响应对象 我正在尝试使用缓存的内容来回答请求。如果缓存没有所需的内容,我将从服务器获取,将响应放入缓存并返回它。 self.addEventListener('fet
我可以在 Android Chrome、macOS Chrome 以及 Safari 和 Windows Chrome 上使用 service Worker 下载网站以供离线使用。当我尝试将网站下载到
如果用户尝试在离线状态下打开未缓存的页面,我的服务工作线程应运行以下方法 unableToResolve(),但页面会显示: Unable to connect Firefox can’t estab
有时当我运行我的服务器时,控制台会给我一个错误: Failed to load ‘http://localhost:3000/browser-sync/socket.io/?EIO=3&transpo
我是一名优秀的程序员,十分优秀!