网络工人
原生跨平台网络工人. 在已出版npm模块中工作.
在节点,这是一个网络兼容 工人执行在op Node's 工作线条( t)。 。 。 .
在浏览器中 (并被捆绑到浏览器时),它仅仅是一个别名: Worker。 。 。 .
特征
这与工人的线条不同之处如下:
- 使Worker 代码在浏览器和节点之间兼容
- 支持模块工人
{type:'module'}原生地位于12.8+节点 - 使用 DOM 类事件(
Event.data, (中文(简体) ),Event.type页:1 - 支持事件处理器属性( e)
worker.onmessage=..(中文(简体) ) Worker()接受模块 URL、 Blob URL 或数据 URL- 模拟浏览器样式 全球范围 在工人内部
用法示例
最简单的形式:
import Worker from 'web-worker';
const worker = new Worker('data:,postMessage("hello")');
worker.onmessage = e => console.log(e.data); // "hello"
| 主语.js | 劳工.js |
|---|---|
|
|
* 注意到如何 new URL('./worker.js', import.meta.url) 用于比照当前模块而不是应用程序基址加载工人。 没有这个, Worker URL 是相对于文档的 URL, 在 Node.js 中被解释为 process.cwd()。 。 。 .
在建设工具和测试框架中对这一模式的支持仍然有限。 我们是 努力成长。 。 。 .
模块工人
模块工人在12.8+节点中支持使用此插件,利用节点的本地ES模块支持. 在浏览器中,它们可以本土使用于Chrome 80+,也可以在通过Chrome 80+的所有浏览器中使用 工人插头 或者说 滚出- 插入- 关闭主线。和经典工人一样,节点与浏览器在使用上没有区别:
| 主语. mjs | 劳工.mjs |
|---|---|
|
|
数据 URL
模块和经典工作者都支持使用数据URL为工人提供证据:
import Worker from 'web-worker';
const worker = new Worker(`data:application/javascript,postMessage(42)`);
worker.addEventListener('message', e => {
console.log(e.data) // 42
});
特别 谢谢
本单元旨在提供简单而可忘却的基础设施,
因此它需要一个明显和描述性的名称.
@ 卡尔文梅特卡夫,您可以认出谁是作者 说谎 以及其它精良的模块, 慷慨地从他的名字 web-worker 软件包.
谢谢凯文!