此页面由社区从英文翻译而来。了解更多并加入 MDN Web Docs 社区。

View in English Always switch to English

ServiceWorker.state

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since ⁨2018年4月⁩.

实验性: 这是一项实验性技术
在将其用于生产之前,请仔细检查浏览器兼容性表格

ServiceWorker 接口的这个只读的 state 属性返回一个代表 service worker 当前状态的字符串。值可以是以下这些:installing, installed, activating, activated,或者是 redundant.

语法

someURL = ServiceWorker.state

一个 ServiceWorkerState 的定义值 (see the spec.)

示例

这块代码出自 service worker registration-events sample (live demo). 代码监听了任何ServiceWorker.state中的改变,并返回它的值。

js
var serviceWorker;
if (registration.installing) {
  serviceWorker = registration.installing;
  document.querySelector("#kind").textContent = "installing";
} else if (registration.waiting) {
  serviceWorker = registration.waiting;
  document.querySelector("#kind").textContent = "waiting";
} else if (registration.active) {
  serviceWorker = registration.active;
  document.querySelector("#kind").textContent = "active";
}

if (serviceWorker) {
  logState(serviceWorker.state);
  serviceWorker.addEventListener("statechange", function (e) {
    logState(e.target.state);
  });
}

规范

Specification
Service Workers
# service-worker-state

浏览器兼容性