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

View in English Always switch to English

ServiceWorkerRegistration.update()

基线 广泛可用

自 2018年4月 起,此特性已在主流浏览器中得到支持,可在大多数设备和浏览器版本中正常使用。

ServiceWorkerRegistrationupdate 方法尝试更新 service worker。获得 worker 脚本的 URL,逐字节匹配新获取的 worker 和当前的 worker,存在差异的时候安装新的 worker。获取 worker 脚本的更新操作会忽略浏览器缓存的 24 小时前的内容。

备注:这个特性也应用于 Web Workers.

语法

js
update()

参数

无。

返回

返回 Promise 在 resolve 时对应一个 ServiceWorkerRegistration 对象。

示例

下面的示例注册一个 service worker,然后绑定事件到按钮,这样你可以有需要时,明确的更新 server worker:

js
if ("serviceWorker" in navigator) {
  navigator.serviceWorker
    .register("/sw-test/sw.js", { scope: "sw-test" })
    .then(function (registration) {
      // registration worked
      console.log("Registration succeeded.");
      button.onclick = function () {
        registration.update();
      };
    })
    .catch(function (error) {
      // registration failed
      console.log("Registration failed with " + error);
    });
}

规范

规范
Service Workers Nightly
# service-worker-registration-update

浏览器兼容性

参见