该 DedicatedWorkerGlobalScope 对象(也就是 Worker 全局作用域)可以通过 self关键字来访问 。也可以在这上面使用一些不直接与该worker全局作用域相关的全局函数,命名空间对象以及构造器,相关信息可以参见 JavaScript Reference。更多内容参考: Functions available to workers。
属性
该接口属性继承自WorkerGlobalScope 接口以及它的父类EventTarget,因此实现了来自于WindowTimers, WindowBase64 和WindowEventHandlers中的属性。
从WorkerGlobalScope继承的属性
WorkerGlobalScope.self- 返回一个引用自 DedicatedWorkerGlobalScope本身的对象
WorkerGlobalScope.console只读- 返回和worker相关的
Console。 WorkerGlobalScope.location只读- 返回和worker相关的
WorkerLocation。 WorkerLocation 是一个特定的 location 对象, 绝大部分是浏览器作用域的Location的子集,但根据worker进行了一些修改。 WorkerGlobalScope.navigator只读- WorkerNavigator 是一个特定的 location 对象, 绝大部分是浏览器作用域的
Navigator的子集,但根据worker进行了一些修改。 WorkerGlobalScope.performance只读- 返回和worker相关的
Performance对象 ,该对象是标准的performance对象,但是只是其属性和方法的子集。
事件处理程序
该接口继承了来自于WorkerGlobalScope接口以及它的父类 EventTarget,因此实现了来自于 WindowTimers,WindowBase64,和 WindowEventHandlers中的属性。
DedicatedWorkerGlobalScope.onmessage- 是一个
EventHandler,其代码会在一个message事件产生时被调用。这些事件的类型是MessageEvent并且将会被在worker接收到一个来自于启动该worker的文档的消息时被调用(比如来自于Worker.postMessage方法。)
Methods
该接口继承了来自于WorkerGlobalScope接口以及它的父类 EventTarget,因此实现了来自于 WindowTimers,WindowBase64,和 WindowEventHandlers中的属性。
DedicatedWorkerGlobalScope.postMessage- 发送消息到生成该worker的父文档——消息可以由任何Javascript对象组成。
继承自WorkerGlobalScope
WorkerGlobalScope.close()- 抛弃所有正在该WorkerGlobalScope的 event loop中排队的任务,有效地关闭该特定作用域。
WorkerGlobalScope.dump()- 往控制台写入一条消息。
WorkerGlobalScope.importScripts()- 导入一条或者以上脚本到当前worker的作用域里。你可以根据你的需求指定要导入的脚本,通过逗号分割。比如:importScripts('foo.js', 'bar.js');
由别的地方实现的方法
WindowBase64.atob()- 解码经过base-64编码后的字符串数据。
WindowBase64.btoa()- 将二进制数据用base-64编码为ASCII 字符串。
WindowTimers.clearInterval()- 取消使用
WindowTimers.setInterval()创建的重复操作集。 WindowTimers.clearTimeout()- 取消使用
WindowTimers.setTimeout()创建的重复操作集。 WindowTimers.setInterval()- 按计划每X毫秒执行某一函数。
WindowTimers.setTimeout()- 延迟执行某一函数。
相关规范
| Specification | Status | Comment |
|---|---|---|
| WHATWG HTML Living Standard DedicatedWorkerGlobalScope |
Living Standard | No change from Web Workers. |
| Web Workers DedicatedWorkerGlobalScope |
Editor's Draft | Initial definition. |
浏览器兼容性
| Feature | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
|---|---|---|---|---|---|
| Basic support | 4 | 3.5 (1.9.1) | 10 | 10.6 | 4 |
ononline, onoffline |
(Yes) | 29 (29) | ? | ? | ? |
console |
(Yes) | 29 (29)[1] 30 (30) |
? | ? | ? |
performance |
(Yes) | 34 (34) | ? | ? | ? |
| Feature | Android | Chrome for Android | Firefox Mobile (Gecko) | Firefox OS (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
|---|---|---|---|---|---|---|---|
| Basic support | ? | (Yes) | 1.0 (1.9.1) | 1.0.1 | 10 | 11.5 | 5.1 |
ononline, onoffline |
? | (Yes) | 29.0 (29)[1] 30.0 (30) |
1.4 | ? | ? | ? |
console |
? | (Yes) | 29.0 (29) | 1.4 | ? | ? | ? |
performance |
? | (Yes) | 34.0 (34) | 2.1 | ? | ? | ? |
[1] Gecko 29.0 implemented this as WorkerConsole. Gecko 30.0 changed this to the regular Console.