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
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.
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
- Sử dụng Service Worker
- Vòng đời service worker
self.skipWaiting()- bỏ qua giai đoạn chờ của service worker