Clients.claim() - Web API 接口参考 编辑
这是一个实验中的功能
此功能某些浏览器尚在开发中,请参考浏览器兼容性表格以得到在不同浏览器中适合使用的前缀。由于该功能对应的标准文档可能被重新修订,所以在未来版本的浏览器中该功能的语法和行为可能随之改变。
Clients
接口的 claim()
方法允许一个激活的 service worker 将自己设置为其 scope
内所有clients 的controller
. 这会在由此service worker 控制的任何 clients 中触发 navigator.serviceWorker
上的 "controllerchange
" 事件.
当一个 service worker 被初始注册时,页面在下次加载之前不会使用它。 claim()
方法会立即控制这些页面。请注意,这会导致 service worker 控制通过网络定期加载的页面,或者可能通过不同的 service worker 加载.
语法
await clients.claim();
参数
None.
返回
A Promise
for void
.
示例
The following example uses claim()
inside service worker's "activate
" event listener so that clients loaded in the same scope do not need to be reloaded before their fetches will go through this service worker.
self.addEventListener('activate', event => {
event.waitUntil(clients.claim());
});
规范
Specification | Status | Comment |
---|---|---|
Service Workers claim() | Working Draft | Initial definition. |
浏览器兼容性
BCD tables only load in the browser
The compatibility table on this page is generated from structured data. If you'd like to contribute to the data, please check out https://github.com/mdn/browser-compat-data and send us a pull request.See also
- Using Service Workers
- The service worker lifecycle
- Is ServiceWorker ready?
Promises
self.skipWaiting()
- skip the service worker's waiting phase
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论