BackgroundFetchRegistration: match() method

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 match() của giao diện BackgroundFetchRegistration trả về BackgroundFetchRecord khớp đầu tiên.

Cú pháp

js
match(request)
match(request, options)

Tham số

request

Request mà bạn đang cố tìm các bản ghi tương ứng. Tham số này có thể là một đối tượng Request hoặc một URL.

options Optional

Một đối tượng thiết lập các tùy chọn cho thao tác match. Các tùy chọn khả dụng là:

ignoreSearch Optional

Một giá trị boolean cho biết có bỏ qua chuỗi truy vấn trong URL hay không. Ví dụ, nếu đặt thành true thì phần ?value=bar của https://example.com/?value=bar sẽ bị bỏ qua khi thực hiện so khớp. Mặc định là false.

ignoreMethod Optional

Một giá trị boolean. Khi là true, thao tác so khớp sẽ không kiểm tra phương thức http của Request. Nếu là false (mặc định) thì chỉ cho phép GETHEAD.

ignoreVary Optional

Một giá trị boolean. Khi là true, nó cho biết nên bỏ qua header Vary. Mặc định là false.

Giá trị trả về

Một Promise phân giải thành BackgroundFetchRecord đầu tiên khớp với yêu cầu, hoặc undefined nếu không tìm thấy kết quả khớp nào.

Note: BackgroundFetchRegistration.match() về cơ bản giống hệt BackgroundFetchRegistration.matchAll(), ngoại trừ việc thay vì phân giải thành một mảng gồm mọi bản ghi khớp, nó chỉ phân giải thành bản ghi khớp đầu tiên.

Ngoại lệ

InvalidStateError DOMException

Được trả về nếu bạn gọi match() khi không có lượt tìm nạp nào đang diễn ra. Trạng thái này sẽ được phản ánh bằng việc BackgroundFetchRegistration.recordsAvailable được đặt thành false.

Ví dụ

Trong ví dụ này, chúng ta tìm một bản ghi có URL là "/ep-5.mp3". Nếu tìm thấy một BackgroundFetchRecord, chúng ta có thể trả về một số thông tin về nó.

js
bgFetch.match("/ep-5.mp3").then(async (record) => {
  if (!record) {
    console.log("No record found");
    return;
  }

  console.log(`Here's the request`, record.request);
  const response = await record.responseReady;
  console.log(`And here's the response`, response);
});

Thông số kỹ thuật

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

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