WorkerGlobalScope
注意:此功能仅在 Web Workers 中可用。
WorkerGlobalScope
是 Web Workers API 的一个接口,它表示任何工作者的作用域。工作者没有浏览上下文;此作用域包含通常由 Window
对象传递的信息 - 在这种情况下,事件处理程序、控制台或关联的 WorkerNavigator
对象。每个 WorkerGlobalScope
都有自己的事件循环。
此接口通常由每种工作者类型专门化:DedicatedWorkerGlobalScope
用于专用工作者,SharedWorkerGlobalScope
用于共享工作者,以及 ServiceWorkerGlobalScope
用于 ServiceWorker。self
属性返回每个上下文的专门作用域。
实例属性
此接口继承了来自 EventTarget
接口的属性。
WorkerGlobalScope.caches
只读 安全上下文-
返回与当前上下文关联的
CacheStorage
对象。此对象启用诸如将资产存储以供离线使用以及为请求生成自定义响应之类的功能。 console
只读 非标准-
返回与工作者关联的
console
。 WorkerGlobalScope.crossOriginIsolated
只读-
返回一个布尔值,指示网站是否处于跨源隔离状态。
WorkerGlobalScope.crypto
只读-
返回与全局对象关联的
Crypto
对象。 WorkerGlobalScope.fonts
只读-
返回与工作者关联的
FontFaceSet
。 WorkerGlobalScope.indexedDB
只读-
为工作者提供了一种异步访问索引数据库功能的机制;返回一个
IDBFactory
对象。 WorkerGlobalScope.isSecureContext
只读-
返回一个布尔值,指示当前上下文是否安全(
true
)还是不安全(false
)。 WorkerGlobalScope.location
只读-
返回与工作者关联的
WorkerLocation
。它是一个特定的位置对象,主要是浏览范围的Location
的子集,但适用于工作者。r。 -
返回与工作者关联的
WorkerNavigator
。它是一个特定的导航器对象,主要是浏览范围的Navigator
的子集,但适用于工作者。 WorkerGlobalScope.origin
只读-
返回全局对象的来源,序列化为字符串。
WorkerGlobalScope.performance
只读-
返回与工作者关联的
Performance
。只有Performance
接口的一部分属性和方法可用于工作者。 WorkerGlobalScope.scheduler
只读-
返回与当前上下文关联的
Scheduler
对象。这是使用 优先级任务调度 API 的入口点。 WorkerGlobalScope.trustedTypes
只读-
返回与全局对象关联的
TrustedTypePolicyFactory
对象,为使用 Trusted Types API 提供入口点。 WorkerGlobalScope.self
只读-
返回对
WorkerGlobalScope
本身的引用。大多数情况下,它是一个特定的作用域,例如DedicatedWorkerGlobalScope
、SharedWorkerGlobalScope
或ServiceWorkerGlobalScope
。
实例方法
此接口继承了来自 EventTarget
接口的方法。
WorkerGlobalScope.atob()
-
解码使用 base-64 编码编码的数据字符串。
WorkerGlobalScope.btoa()
-
从二进制数据的字符串创建 base-64 编码的 ASCII 字符串。
WorkerGlobalScope.clearInterval()
-
取消使用
setInterval()
设置的重复执行。 WorkerGlobalScope.clearTimeout()
-
取消使用
setTimeout()
设置的延迟执行。 WorkerGlobalScope.createImageBitmap()
-
接受各种不同的图像源,并返回一个
Promise
,该 Promise 解析为一个ImageBitmap
。可选地,源被裁剪到以 (sx, sy) 为起点、宽度为 sw、高度为 sh 的像素矩形。 WorkerGlobalScope.dump()
已弃用 非标准-
允许您将消息写入 stdout - 即在您的终端中。这与 Firefox 的
window.dump
相同,但适用于工作者。 WorkerGlobalScope.fetch()
-
开始从网络获取资源的过程。
WorkerGlobalScope.importScripts()
-
将一个或多个脚本导入工作者的作用域。您可以指定任意数量的脚本,用逗号分隔。例如:
importScripts('foo.js', 'bar.js');
。 WorkerGlobalScope.queueMicrotask()
-
将一个微任务排队,以便在控制权返回到浏览器的事件循环之前安全地执行。
WorkerGlobalScope.setInterval()
-
安排一个函数在经过给定毫秒数后每次执行。
WorkerGlobalScope.setTimeout()
-
安排一个函数在给定时间段后执行。
WorkerGlobalScope.structuredClone()
WorkerGlobalScope.reportError()
-
报告脚本中的错误,模拟未捕获的异常。
事件
error
-
在发生错误时触发。
languagechange
-
当用户的首选语言发生更改时,在全局/工作者作用域对象上触发。
offline
-
当浏览器无法访问网络并且
navigator.onLine
的值切换为false
时触发。 online
-
当浏览器能够访问网络并且
navigator.onLine
的值切换为true
时触发。 rejectionhandled
-
在处理过的
Promise
拒绝事件上触发。 securitypolicyviolation
-
当 内容安全策略 被违反时触发。
unhandledrejection
-
在未处理的
Promise
拒绝事件上触发。
示例
您不会直接在代码中访问 WorkerGlobalScope
;但是,其属性和方法由更具体的全局作用域继承,例如 DedicatedWorkerGlobalScope
和 SharedWorkerGlobalScope
。例如,您可以将另一个脚本导入工作者,并使用以下两行打印出工作者作用域的 navigator
对象的内容
importScripts("foo.js");
console.log(navigator);
注意:由于工作者脚本的全局作用域实际上是您正在运行的工作者的全局作用域(DedicatedWorkerGlobalScope
或其他),并且所有工作者全局作用域都继承了 WorkerGlobalScope
的方法、属性等,因此您可以在不指定父对象的情况下运行上述行。
规范
规范 |
---|
HTML 标准 # the-workerglobalscope-common-interface |
浏览器兼容性
BCD 表格仅在浏览器中加载
另请参见
- 其他全局对象接口:
Window
、DedicatedWorkerGlobalScope
、SharedWorkerGlobalScope
、ServiceWorkerGlobalScope
- 其他与 Worker 相关的接口:
Worker
、WorkerLocation
和WorkerNavigator
- 使用 Web Workers