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.

EventTarget ServiceWorkerRegistration

Thuộc tính instance

Cũng kế thừa các thuộc tính từ giao diện cha, EventTarget.

ServiceWorkerRegistration.active Read only

Trả về một service worker có trạng thái là activating hoặc activated. Ban đầu được đặt thành null. Một worker đang hoạt động sẽ kiểm soát một Client nếu URL của client nằm trong phạm vi của đăng ký (tùy chọn scope được đặt khi ServiceWorkerContainer.register được gọi lần đầu tiên.)

ServiceWorkerRegistration.backgroundFetch Read 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.

ServiceWorkerRegistration.cookies Read only

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.index Read 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.installing Read only

Trả về một service worker có trạng thái là installing. Ban đầu được đặt thành null.

ServiceWorkerRegistration.navigationPreload Read only

Trả về thể hiện của NavigationPreloadManager được liên kết với đăng ký service worker hiện tại.

ServiceWorkerRegistration.paymentManager Read only Experimental

Trả về một thể hiện PaymentManager củ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.periodicSync Read 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.pushManager Read 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.scope Read 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.sync Read 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.updateViaCache Read 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ặc none.

ServiceWorkerRegistration.waiting Read only

Trả về một service worker có trạng thái là installed. Ban đầu được đặt thành null.

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.installing có đượ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.

js
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

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

Xem thêm