Web Worker
创建Web Wroker
const wroker = new Worker(path, options);参数
说明
js 主线程与 worker 线程数据传递
const worker = new Worker("/worker.js");
// 接收 worker 线程发送的消息
worker.addEventListener("message", (ev) => {
console.log(ev.data);
});
// 向worker线程发送消息
worker.postMessage("Hello worker.js 👋");
// worker.js
self.addEventListener("message", (ev) => {
console.log(ev.data); // Hello 👋
self.postMessage("Hell Main.js 🎉"); // 向主线程发送消息
});监听错误消息
事件
描述
关闭 worker 线程
worker 线程引入其他 js 文件
ESModule 模式
主线程与 worker 之间可以传递哪些数据类型
类型
说明
多 Worker 线程管理
创建多个 Worker
线程池(Worker Pool)
Web Worker 性能优化
合理分配任务
Web Worker 进阶通信
复制数据传输(Structured Cloning)
共享内存(Transferable Objects)
使用 MessageChannel 进行双向通信
最后更新于