BackgroundFetchManager:fetch() 方法
注意:此功能在 Web Workers 中可用。
BackgroundFetchManager 介面的 fetch() 方法在給定一個或多個 URL 或 Request 物件的情況下,會啟動一個後臺獲取操作。
語法
fetch(id, requests)
fetch(id, requests, options)
引數
id-
一個開發者定義的識別符號,可以傳遞給其他方法以檢索此操作的
BackgroundFetchRegistration。 requests-
一個
RequestInfo物件或一個RequestInfo物件陣列。每個
RequestInfo物件都是一個Request物件或一個字串,它將作為input引數傳遞給Request()建構函式。 options可選-
一個用於自定義瀏覽器向用戶顯示的獲取進度對話方塊的物件。它具有以下屬性:
title可選-
一個將用作進度對話方塊標題的字串。
icons可選-
一個物件陣列,每個物件代表瀏覽器可能用於進度對話方塊的圖示。每個物件都具有以下屬性:
downloadTotal可選-
一個表示獲取操作估計總下載大小(以位元組為單位)的數字。這用於向用戶顯示下載的大小以及下載進度。
一旦總下載大小超過
downloadTotal,獲取就會被中止。
返回值
一個 Promise,它將解析為一個 BackgroundFetchRegistration 物件。
異常
TypeError-
如果在沒有提供請求、請求的模式是
no-cors、沒有存在 service worker、已存在具有請求的id的請求,或請求失敗時丟擲。 AbortErrorDOMException-
指示獲取已被中止。
NotAllowedErrorDOMException-
指示使用者尚未獲得進行後臺獲取的許可權。
QuotaExceededError-
如果因超出瀏覽器 儲存配額 而導致儲存請求失敗時丟擲。
示例
以下示例展示瞭如何使用 fetch() 來啟動後臺獲取操作。在使用活動的 service worker 時,使用 ServiceWorkerRegistration.backgroundFetch 屬性來訪問 BackgroundFetchManager 物件並呼叫其 fetch() 方法。
navigator.serviceWorker.ready.then(async (swReg) => {
const bgFetch = await swReg.backgroundFetch.fetch(
"my-fetch",
["/ep-5.mp3", "ep-5-artwork.jpg"],
{
title: "Episode 5: Interesting things.",
icons: [
{
sizes: "300x300",
src: "/ep-5-icon.png",
type: "image/png",
label: "Downloading a show",
},
],
downloadTotal: 60 * 1024 * 1024,
},
);
});
規範
| 規範 |
|---|
| Background Fetch # background-fetch-manager-fetch |
瀏覽器相容性
載入中…