Để đăng ký một nhân viên phục vụ, tôi có thể gọiviệc sử dụng của `self.Clients.claim() là gì '
navigator.serviceWorker.register('/worker.js')
Mỗi lần tải trang nó kiểm tra các phiên bản cập nhật của worker.js
. Nếu tìm thấy bản cập nhật, nhân viên mới sẽ không được sử dụng cho đến khi tất cả các tab của trang được đóng lại và sau đó mở lại. Giải pháp tôi đọc là:
self.addEventListener('install', function(event) {
event.waitUntil(self.skipWaiting());
});
self.addEventListener('activate', function(event) {
event.waitUntil(self.clients.claim());
});
Tôi có thể hiểu phần skipWaiting, nhưng chính xác thì clients.claim()
làm gì? Tôi đã thực hiện một số thử nghiệm đơn giản và có vẻ như hoạt động như mong đợi ngay cả khi không có nó.
Nhận xét nhanh: gọi 'registration.update()' không * bắt buộc * để kiểm tra tập lệnh nhân viên dịch vụ đã cập nhật. Trình duyệt đã được thực hiện tự động sau một yêu cầu điều hướng. 'registration.update()' cho phép bạn kiểm tra mà không phải đợi các yêu cầu điều hướng, và thường không cần thiết. –
Vâng, tôi vừa phát hiện ra điều đó từ khi tôi viết câu hỏi. – BonsaiOak