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
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
BackgroundFetchRegistrationcủa thao tác này. requests-
Một đối tượng
RequestInfohoặc một mảng các đối tượngRequestInfo.Mỗi đối tượng
RequestInfolà một đối tượngRequesthoặc một chuỗi sẽ được truyền làm đối sốinputcho hàm khởi tạoRequest(). optionsOptional-
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:
titleOptional-
Một chuỗi sẽ được dùng làm tiêu đề cho hộp thoại tiến trình.
iconsOptional-
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.
sizesOptional-
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
sizescủa phần tử<link>. typeOptional-
Một chuỗi biểu diễn kiểu MIME của biểu tượng.
labelOptional-
Một chuỗi biểu diễn tên truy cập được của biểu tượng.
downloadTotalOptional-
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ớiidđược yêu cầu, hoặc nếu yêu cầu thất bại. AbortErrorDOMException-
Cho biết thao tác fetch đã bị hủy.
NotAllowedErrorDOMException-
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ó.
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> |