Web Workers API 的 Worker 接口代表一个可以轻松创建的后台任务,并可以将消息发送回其创建者。创建一个工作程序只要简单的调用Worker() 构造函数,并指定一个要在工作线程中运行的脚本。
一个值得注意的事实是:worker 能够产生出新的 worker,前提是这些 worker 托管于相同的源内来作为它们的父页面。 此外,worker 还能够使用 XMLHttpRequest 实现网络 I/O 操作, 只不过 XMLHttpRequest 上的 responseXML 与 channel 两个属性值始终返回 null。
new Worker(in DOMString aStringURL);
Object.prototype
EventTarget.prototype
Worker.prototype
属性 | 说明 |
---|---|
onmessage | 一个事件监听函数,每当拥有 message 属性的 MessageEvent 从 worker 中冒泡出来时就会执行该函数。事件的 data 属性存有消息内容。 |
onerror | 一个事件监听函数,每当类型为 error 的 ErrorEvent 从 worker 中冒泡出来时就会执行该函数。 |
语法 | 说明 |
---|---|
postMessage() | 向 worker 的内部作用域内传递消息。该方法接收一个单独的参数,即要传递给 worker 的数据。数据可以是任何值或者是经过结构化拷贝算法处理过的 JavaScript 对象,换句话说,可以包含循环引用。 |
terminate() | 立即终止 worker。该方法不会给 worker 留下任何完成操作的机会;就是简单的立即停止。 |