WindowOrWorkerGlobalScope执行者:WorkerGlobalScope
WorkerGlobalScope
Web Workers API的WorkerGlobalScope接口是代表任何worker范围的接口。worker没有浏览上下文;此范围包含通常由Window对象传递的信息- 在本例中为事件处理程序,控制台或关联的WorkerNavigator对象。每个WorkerGlobalScope都有自己的事件循环。
此接口通常由每个worker类型专门化:专用于worker的DedicatedWorkerGlobalScope,SharedWorkerGlobalScope对于worker和ServiceWorkerGlobalScope对于ServiceWorker。该self属性返回每个上下文的专用范围。
属性
此接口从EventTarget接口继承属性,并从WindowOrWorkerGlobalScope和WindowEventHandlers mixin实现属性。
标准属性
WorkerGlobalScope.navigator (只读)
- 返回与worker关联的WorkerNavigator。它是一个特定的导航器对象,主要是用于浏览范围的Navigator的子集,但适用于worker。
- WorkerGlobalScope.self (只读)
- 返回对WorkerGlobalScope自身的引用。大多数情况下,它是一个特定的范围,如:DedicatedWorkerGlobalScope,SharedWorkerGlobalScope或ServiceWorkerGlobalScope。
- WorkerGlobalScope.location (只读)
- 返回与worker关联的WorkerLocation。它是一个特定的位置对象,主要是浏览范围的Location的子集,但适用于worker。
非标准属性
- WorkerGlobalScope.performance (只读)
- 返回与worker关联的Performance。它是一个常规的性能对象,只不过它的属性和方法的子集只能用于worker。
- WorkerGlobalScope.console (只读)
- 返回与worker关联的Console。
从其它地方实现的属性
- WindowOrWorkerGlobalScope.caches (只读)
- 返回与当前上下文关联的CacheStorage对象。此对象启用诸如存储资产以供脱机使用以及生成对请求的自定义响应等功能。
- WindowOrWorkerGlobalScope.indexedDB (只读)
- 为应用程序提供了一种机制,用于异步访问索引数据库的功能;返回一个 IDBFactory 对象。
- WindowOrWorkerGlobalScope.isSecureContext (只读)
- 返回一个布尔值,指示当前上下文是否为secure(true)或不是(false)。
- WindowOrWorkerGlobalScope.origin (只读)
- 返回全局对象的原点,序列化为字符串。(这似乎还没有在任何浏览器中实现。)
事件处理程序
此接口从EventTarget接口(包括来自GlobalEventHandlers接口)继承事件处理程序,并从WindowTimers mixin实现事件处理程序。
- WorkerGlobalScope.onerror
- 是一个EventHandler,表示引发error事件时要调用的代码。
- WorkerGlobalScope.onoffline
- 是一个EventHandler,表示引发offline事件时要调用的代码。
- WorkerGlobalScope.ononline
- 是一个EventHandler,表示引发online事件时要调用的代码。
- WorkerGlobalScope.onlanguagechange
- 一个EventHandler在全球/工人范围对象时,会引发用户的首选语言的改变。当用户首选语言更改时,在全局/工作范围对象上引发EventHandler。
- WorkerGlobalScope.onclose
- 是一个EventHandler,表示引发close事件时要调用的代码。
- WorkerGlobalScope.onrejectionhandled
- 处理Promise拒绝事件的事件处理程序。
- WorkerGlobalScope.onunhandledrejection
- 未处理Promise 拒绝事件的事件处理程序。
方法
此接口从EventTarget接口继承方法,并实现WindowOrWorkerGlobalScope和WindowEventHandlers mixin的属性。
标准方法
- WorkerGlobalScope.importScripts()
- 将一个或多个脚本导入到worker的作用域中。您可以指定任意多个,用逗号分隔。例如:importScripts('foo.js', 'bar.js');
非标准方法
- WorkerGlobalScope.dump()
- 允许您向stdout写一条消息 - 即在您的终端中。这与Firefox的window.dump相同,但适用于worker。
从其他地方实现的方法
- WindowOrWorkerGlobalScope.atob()
- 对已使用base-64编码进行编码的数据字符串进行解码。
- WindowOrWorkerGlobalScope.btoa()
- 从二进制数据字符串创建base-64编码的ASCII字符串。
- WindowOrWorkerGlobalScope.clearInterval()
- 使用WindowOrWorkerGlobalScope.setInterval()取消重复执行集。
- WindowOrWorkerGlobalScope.clearTimeout()
- 使用WindowOrWorkerGlobalScope.setTimeout()取消延迟执行集。
- WindowOrWorkerGlobalScope.createImageBitmap()
- 接受各种不同的图像源,并返回一个解析为ImageBitmap的Promise。可选地,将源裁剪为源自(sx,sy)的像素矩形,其宽度为sw,高度为sh。
- WindowOrWorkerGlobalScope.fetch()
- 开始从网络获取资源的过程。
- WindowOrWorkerGlobalScope.setInterval()
- 计划在每次经过给定的毫秒数时执行的函数。
- WindowOrWorkerGlobalScope.setTimeout()
- 计划在给定时间内执行的函数。
不推荐的方法
- WorkerGlobalScope.close()
- 丢弃在WorkerGlobalScope事件循环中排队的任何任务,从而有效地关闭此特定范围。在较新的浏览器版本中,close()可以在DedicatedWorkerGlobalScope和SharedWorkerGlobalScope上使用。这种更改是为了停止close()在服务worker上可用,因为它不应该在那里使用并且在调用时总是抛出异常(参见错误1336043)。
示例
您不会直接在您的代码中访问WorkerGlobalScope;但是,它的属性和方法由更具体的全局范围继承,例如:DedicatedWorkerGlobalScope和SharedWorkerGlobalScope。例如,您可以将另一个脚本导入到worker中,并使用以下两行输出worker范围的navigator对象的内容:
importScripts('foo.js');
console.log(navigator);
由于worker脚本的全局范围实际上是您正在运行的worker(DedicatedWorkerGlobalScope或其他)的全局范围,并且所有worker全局范围都从WorkerGlobalScope继承了方法,属性等,因此您可以运行上述行,而无需指定父对象。
规范
规范 | 状态 | 注释 |
---|---|---|
HTML Living Standard
该规范中“WorkerGlobalScope”的定义。
|
Living Standard
|
浏览器兼容性
电脑端 | 移动端 | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
Chrome
|
Edge
|
Firefox
|
Internet Explorer
|
Opera
|
Safari
|
Android webview | Chrome for Android
|
Edge Mobile | Firefox for Android
|
Opera for Android
|
iOS Safari | |
基本支持 | 支持:4 | 支持 | 支持:3.5 | 支持:10 | 支持:10.6 | 支持:4 | ? | 支持 | 支持 | 支持:4 | 支持:11.5 | 支持:5.1 |
location | 支持:4
|
? | 支持:3.5
|
支持 | 支持:11.5 | 支持:4 | ? | 支持:40 | ? | 支持:4
|
支持 | 支持:5.1 |
navigator | 支持:4
|
支持:17 | 支持:3.5
|
支持 | 支持:11.5 | 支持:4 | ? | 支持:40
|
支持:17 | 支持:4
|
支持 | 支持:5.1 |
onerror | 支持:4
|
? | 支持:3.5
|
支持 | 支持:11.5 | 支持:4 | ? | 支持:40
|
? | 支持:4
|
支持 | 支持:5.1 |
onlanguagechange | 支持:4
|
? | 支持:3.5
|
支持 | 支持:11.5 | 支持:4 | ? | 支持:40
|
? | 支持:4
|
支持 | 支持:5.1 |
onoffline | 支持:4
|
? | 支持:29 | ? | ? | ? | 支持 | 支持:40
|
? | 支持:29 | ? | ? |
ononline | 支持:4
|
? | 支持:29 | ? | ? | ? | 支持 | 支持:40
|
? | 支持:29 | ? | ? |
performance | 支持 | ? | 支持:34 | ? | ? | ? | ? | 支持 | ? | 支持:34 | ? | ? |
self | 支持:4
|
? | 支持:3.5 | 支持 | 支持:11.5 | 支持:4 | ? | 支持:40
|
? | 支持:34 | 支持 | 支持:5.1 |
console
(弃用)
|
支持:4
|
? | 支持:29 | 支持 | 支持 | 支持 | ? | 支持 | ? | 支持:29
|
? | ? |
close
(弃用)
|
支持:4
|
? | 支持:3.5 | 支持 | 支持:11.5 | 支持:4 | ? | 支持 | ? | 支持:4 | ? | ? |
dump
(弃用)
|
不支持 | 不支持 | 不支持 | 不支持 | 不支持 | 不支持 | 不支持 | 不支持 | 不支持 | 支持:4 | 不支持 | 不支持 |
importScripts | 支持 | 不支持 | 支持 | 支持 | 支持 | 支持 | 支持 | 支持 | 支持 | 支持:4 | 支持 | 支持 |
onclose
(弃用)
|
支持:4
|
? | 不支持:3.5 - 50 | 支持 | 支持:11.5 | 支持:4 | ? | 支持:40 | 不支持 | 不支持:4 - 50 | 支持 | 支持:5.1 |