A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://developer.cdn.mozilla.net/zh-CN/docs/Web/API/Web_Workers_API below:

Web Worker API - Web API

Web Worker API

Web Worker 使得在一个独立于 Web 应用程序主执行线程的后台线程中运行脚本操作成为可能。这样做的好处是可以在独立线程中执行费时的处理任务,使主线程(通常是 UI 线程)的运行不会被阻塞/放慢。

Web Worker 概念与用法

Worker 是一个使用构造函数创建的对象(例如 Worker()),它运行一个具名 JavaScript 文件——该文件包含将在 worker 线程中运行的代码。

除了标准的 JavaScript 函数集(如 String、Array、Object、JSON 等),你可以在 worker 线程中运行任何你喜欢的代码,有一些例外:你不能直接在 worker 线程中操作 DOM 元素,或使用 window 对象中的某些方法和属性。有关你可以运行的代码的信息,请参见下面的 Worker 全局上下文和函数和支持的 Web API 。

数据通过消息系统在 worker 和主线程之间发送——双方都使用 postMessage() 方法发送消息,并通过 onmessage 事件处理程序响应消息(消息包含在 message 事件的 data 属性中)。数据是复制的,而不是共享的。

worker 可以依次生成新的 worker,只要这些 worker 与父页面托管在同一个 origin 中。此外,worker 可以通过 XMLHttpRequest 来访问网络,但 XMLHttpRequest 的 responseXML 和 channel 属性始终返回 null。

Worker 类型

有许多不同类型的 worker:

备注: 根据 web worker 规范,worker 错误事件不应该冒泡(参见 Firefox bug 1188141)。该规范已在 Firefox 42 中实现。

Worker 全局上下文和函数 支持的 Web API Web Worker 接口
Worker

表示正在运行的 worker 线程,允许你将信息传递到正在运行的 worker 程序代码。

WorkerLocation

定义由 Worker 执行的脚本的绝对位置。

表示一种特定的 worker,可以从多个浏览上下文(即窗口、标签或 iframe)甚至其他 worker 访问。

WorkerGlobalScope

表示任意 worker 的通用作用域(对于正常的网页类容来说与 Window 有相同的作用)。不同类型的 worker 都有从接口继承作用域对象,并且可以添加更多特定特性。

DedicatedWorkerGlobalScope

表示一个专用 worker 的作用域,继承自 WorkerGlobalScope,且可添加一些特有的特性。

表示一个共享 worker 的作用域,继承自 WorkerGlobalScope,且可添加一些特有的特性。

WorkerNavigator

表示用户代理(客户端)的身份和状态。

示例 规范 参见

RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4