BackgroundFetchManager: phương thức fetch()

Khả dụng hạn chế

This feature is not Baseline because it does not work in some of the most widely-used browsers.

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

Note: This feature is available in Web Workers.

Phương thức fetch() của giao diện BackgroundFetchManager khởi tạo một thao tác background fetch, với một hoặc nhiều URL hoặc đối tượng Request.

Cú pháp

js
fetch(id, requests)
fetch(id, requests, options)

Tham số

id

Một mã nhận dạng do nhà phát triển định nghĩa, có thể được truyền cho các phương thức khác để truy xuất BackgroundFetchRegistration của thao tác này.

requests

Một đối tượng RequestInfo hoặc một mảng các đối tượng RequestInfo.

Mỗi đối tượng RequestInfo là một đối tượng Request hoặc một chuỗi sẽ được truyền làm đối số input cho hàm khởi tạo Request().

options Optional

Một đối tượng sẽ được dùng để tùy biến hộp thoại tiến trình tải mà trình duyệt hiển thị cho người dùng. Nó có các thuộc tính sau:

title Optional

Một chuỗi sẽ được dùng làm tiêu đề cho hộp thoại tiến trình.

icons Optional

Một mảng các đối tượng, mỗi đối tượng biểu diễn một biểu tượng mà trình duyệt có thể dùng cho hộp thoại tiến trình. Mỗi đối tượng có các thuộc tính sau:

src

Một chuỗi biểu diễn URL tới tệp biểu tượng.

sizes Optional

Một chuỗi biểu diễn kích thước của hình ảnh, sử dụng cùng cú pháp với thuộc tính sizes của phần tử <link>.

type Optional

Một chuỗi biểu diễn kiểu MIME của biểu tượng.

label Optional

Một chuỗi biểu diễn tên truy cập được của biểu tượng.

downloadTotal Optional

Một số biểu diễn tổng kích thước tải xuống ước tính, tính bằng byte, cho thao tác fetch. Giá trị này được dùng để cho người dùng biết tệp tải lớn đến đâu và để hiển thị tiến trình tải xuống.

Ngay khi tổng kích thước tải xuống vượt quá downloadTotal, thao tác fetch sẽ bị hủy.

Giá trị trả về

Một Promise được giải quyết bằng một đối tượng BackgroundFetchRegistration.

Ngoại lệ

TypeError

Phát sinh nếu không có yêu cầu nào được cung cấp, nếu chế độ của một yêu cầu là no-cors, nếu không có service worker, nếu đã tồn tại một yêu cầu với id được yêu cầu, hoặc nếu yêu cầu thất bại.

AbortError DOMException

Cho biết thao tác fetch đã bị hủy.

NotAllowedError DOMException

Cho biết chưa có quyền của người dùng để thực hiện background fetch.

QuotaExceededError

Được ném ra nếu việc lưu các yêu cầu thất bại do vượt quá hạn mức lưu trữ của trình duyệt.

Ví dụ

Ví dụ sau cho thấy cách dùng fetch() để khởi tạo một thao tác background fetch. Khi có một service worker đang hoạt động, hãy dùng thuộc tính ServiceWorkerRegistration.backgroundFetch để truy cập đối tượng BackgroundFetchManager và gọi phương thức fetch() của nó.

js
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,
    },
  );
});

Thông số kỹ thuật

Thông số kỹ thuật
Background Fetch
# background-fetch-manager-fetch

Khả năng tương thích trình duyệt