Clients: phương thức claim()

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2018.

Note: This feature is only available in Service Workers.

Phương thức claim() của giao diện Clients cho phép một service worker đang hoạt động tự đặt mình làm controller cho mọi client trong scope của nó. Điều này kích hoạt một sự kiện controllerchange trên navigator.serviceWorker ở mọi client bắt đầu được service worker này kiểm soát.

Khi một service worker mới được đăng ký, các trang sẽ không dùng nó cho đến lần tải tiếp theo. Phương thức claim() khiến các trang đó được kiểm soát ngay lập tức. Hãy lưu ý rằng điều này đồng nghĩa service worker của bạn sẽ kiểm soát cả những trang được tải bình thường qua mạng, hoặc có thể qua một service worker khác.

Cú pháp

js
claim()

Tham số

Không có.

Giá trị trả về

Một Promise được phân giải thành undefined.

Ví dụ

Ví dụ sau dùng claim() bên trong trình lắng nghe sự kiện activate của service worker để các client được tải trong cùng scope không cần tải lại trước khi yêu cầu tìm nạp của chúng đi qua service worker này.

js
self.addEventListener("activate", (event) => {
  event.waitUntil(clients.claim());
});

Thông số kỹ thuật

Specification
Service Workers Nightly
# clients-claim

Tương thích trình duyệt

Xem thêm