--- title: ServiceWorkerRegistration.update() slug: Web/API/ServiceWorkerRegistration/update tags: - 方法 - 更新 translation_of: Web/API/ServiceWorkerRegistration/update ---
update
方法尝试更新service worker。获得worker脚本的URL,逐字节匹配新获取的worker和当前的worker,存在差异的时候安装新的worker。获取worker脚本的更新操作会忽略浏览器缓存的24小时前的内容。注意: 这个特性也应用于 Web Workers.
ServiceWorkerRegistration.update();
None.
返回 {{domxref("Promise")}} 在resolve时对应一个 {{domxref("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 |
---|---|---|
{{SpecName('Service Workers', '#service-worker-registration-update-method', 'ServiceWorkerRegistration.update()')}} | {{Spec2('Service Workers')}} | Initial definition. |
{{Compat("api.ServiceWorkerRegistration.update")}}