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 |
瀏覽器相容性
載入中…