ServiceWorkerRegistration
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.
* Some parts of this feature may have varying levels of support.
Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.
Note: This feature is available in Web Workers.
Giao diện ServiceWorkerRegistration của Service Worker API đại diện cho việc đăng ký service worker. Bạn đăng ký một service worker để kiểm soát một hoặc nhiều trang chia sẻ cùng nguồn gốc.
Thời gian tồn tại của một đăng ký service worker vượt xa các đối tượng ServiceWorkerRegistration đại diện cho chúng trong thời gian tồn tại của các client service worker tương ứng. Trình duyệt duy trì một danh sách bền vững các đối tượng ServiceWorkerRegistration đang hoạt động.
Thuộc tính instance
Cũng kế thừa các thuộc tính từ giao diện cha, EventTarget.
ServiceWorkerRegistration.activeRead only-
Trả về một service worker có trạng thái là
activatinghoặcactivated. Ban đầu được đặt thànhnull. Một worker đang hoạt động sẽ kiểm soát mộtClientnếu URL của client nằm trong phạm vi của đăng ký (tùy chọnscopeđược đặt khiServiceWorkerContainer.registerđược gọi lần đầu tiên.) ServiceWorkerRegistration.backgroundFetchRead only Experimental-
Trả về một tham chiếu đến đối tượng
BackgroundFetchManager, quản lý các hoạt động fetch nền. -
Trả về một tham chiếu đến giao diện
CookieStoreManager, cho phép đăng ký và hủy đăng ký các sự kiện thay đổi cookie. ServiceWorkerRegistration.indexRead only Experimental-
Trả về một tham chiếu đến giao diện
ContentIndex, để quản lý nội dung đã lập chỉ mục cho xem ngoại tuyến. ServiceWorkerRegistration.installingRead only-
Trả về một service worker có trạng thái là
installing. Ban đầu được đặt thànhnull. -
Trả về thể hiện của
NavigationPreloadManagerđược liên kết với đăng ký service worker hiện tại. ServiceWorkerRegistration.paymentManagerRead only Experimental-
Trả về một thể hiện
PaymentManagercủa ứng dụng thanh toán, được sử dụng để quản lý các chức năng khác nhau của ứng dụng thanh toán. ServiceWorkerRegistration.periodicSyncRead only Experimental-
Trả về một tham chiếu đến giao diện
PeriodicSyncManager, cho phép đăng ký các tác vụ chạy ở các khoảng thời gian cụ thể. ServiceWorkerRegistration.pushManagerRead only-
Trả về một tham chiếu đến giao diện
PushManagerđể quản lý các đăng ký push bao gồm đăng ký, lấy đăng ký đang hoạt động, và truy cập trạng thái quyền push. ServiceWorkerRegistration.scopeRead only-
Trả về một chuỗi đại diện cho một URL xác định phạm vi đăng ký của service worker; đó là, phạm vi URL mà service worker có thể kiểm soát.
ServiceWorkerRegistration.syncRead only-
Trả về một tham chiếu đến giao diện
SyncManager, quản lý các quá trình đồng bộ hóa nền. ServiceWorkerRegistration.updateViaCacheRead only-
Trả về giá trị của cài đặt được sử dụng để xác định các trường hợp mà trình duyệt sẽ tham vấn bộ nhớ đệm HTTP khi cố gắng cập nhật service worker hoặc bất kỳ tập lệnh nào được nhập qua
importScripts(). Nó có thể là một trong các giá trị sau:imports,all, hoặcnone. ServiceWorkerRegistration.waitingRead only-
Trả về một service worker có trạng thái là
installed. Ban đầu được đặt thànhnull.
Phương thức instance
Cũng kế thừa các phương thức từ giao diện cha, EventTarget.
ServiceWorkerRegistration.getNotifications()-
Trả về một danh sách các thông báo theo thứ tự chúng được tạo từ nguồn gốc hiện tại thông qua đăng ký service worker hiện tại.
ServiceWorkerRegistration.showNotification()-
Hiển thị thông báo với tiêu đề được yêu cầu.
ServiceWorkerRegistration.unregister()-
Hủy đăng ký service worker và trả về một
Promise. Service worker sẽ hoàn thành bất kỳ hoạt động nào đang diễn ra trước khi bị hủy đăng ký. ServiceWorkerRegistration.update()-
Kiểm tra máy chủ cho phiên bản cập nhật của service worker mà không tham vấn bộ nhớ đệm.
Sự kiện
updatefound-
Được kích hoạt bất cứ khi nào thuộc tính
ServiceWorkerRegistration.installingcó được một service worker mới.
Ví dụ
Trong ví dụ này, mã trước tiên kiểm tra xem trình duyệt có hỗ trợ service workers không và nếu có thì đăng ký một cái. Tiếp theo, nó thêm một trình lắng nghe updatefound trong đó nó sử dụng đăng ký service worker để lắng nghe các thay đổi tiếp theo về trạng thái của service worker. Nếu service worker không thay đổi kể từ lần đăng ký cuối cùng, thì sự kiện updatefound sẽ không được kích hoạt.
if ("serviceWorker" in navigator) {
navigator.serviceWorker
.register("/sw.js")
.then((registration) => {
registration.addEventListener("updatefound", () => {
// If updatefound is fired, it means that there's
// a new service worker being installed.
const installingWorker = registration.installing;
console.log(
"A new service worker is being installed:",
installingWorker,
);
// You can listen for changes to the installing service worker's
// state via installingWorker.onstatechange
});
})
.catch((error) => {
console.error(`Service worker registration failed: ${error}`);
});
} else {
console.error("Service workers are not supported.");
}
Đặc tả kỹ thuật
| Specification |
|---|
| Service Workers Nightly> # serviceworkerregistration-interface> |
| Push API> # extensions-to-the-serviceworkerregistration-interface> |