ServiceWorkerRegistration.update()

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

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

语法

ServiceWorkerRegistration.update();

参数

None.

返回

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

示例

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

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);
  });
};

标准

Specification Status Comment
Service Workers
ServiceWorkerRegistration.update()
Working Draft Initial definition.

Browser compatibility

BCD tables only load in the browser

See also