DeferredRequestInit
DeferredRequestInit 字典是 fetchLater() API 的一部分,用于配置延迟的 fetch 请求的选项。
DeferredRequestInit 对象直接作为第二个参数传递给 window.fetchLater() 函数调用。
实例属性
该字典扩展了 RequestInit 字典,并增加了以下属性:
activateAfter可选-
一个
DOMHighResTimeStamp,指示 fetch 请求应在多少毫秒后发送。在页面导航离开时,fetch 请求可能会提前发送。*实际*的发送时间是未知的,因为浏览器可能会等待更长或更短的时间,例如为了优化批量延迟的 fetch 请求。如果未提供activateAfter属性,则延迟的 fetch 请求会一直等到页面访问结束(包括进入 bfcache)。
异常
RangeErrorDOMException-
当提供了负数的
activateAfter时引发。
示例
延迟一个 GET 请求,直到页面被销毁或进入 bfcache。
在此示例中,未提供 DeferredRequestInit 对象,也未使用超时。
js
fetchLater("/send_beacon");
延迟一个 POST 请求约 1 分钟。
在此示例中,我们创建了一个 Request 对象,并提供了一个 activateAfter 值来延迟 60,000 毫秒(即一分钟)发送请求。
js
fetchLater("/send_beacon", {
method: "POST",
body: getBeaconData(),
activateAfter: 60000, // 1 minute
});
注意: 实际发送时间是未知的,因为浏览器可能会等待更长或更短的时间,例如为了优化批量延迟的 fetch 请求。
规范
| 规范 |
|---|
| Fetch # deferred-fetch |
浏览器兼容性
加载中…