javascript中的Web Workers是什么_如何用它实现多线程

admin 百科 11
Web Workers 是浏览器提供的后台线程机制,用于执行耗时任务而不阻塞主线程;每个 Worker 独立运行、无 DOM 访问权限,通过 postMessage 通信,支持 fetch 等 API 但不可操作 DOM。

javascript中的Web Workers是什么_如何用它实现多线程-第1张图片-佛山资讯网

Web Workers 是浏览器提供的在后台线程中运行 JavaScript 的机制,它让脚本能在不阻塞主线程(即 UI 渲染和用户交互)的情况下执行耗时任务。它不是“真正的多线程”(JavaScript 本身仍是单线程),但通过独立的执行上下文实现了并发能力。

Web Workers 的核心特点

– 每个 Worker 运行在独立的全局上下文中(没有 window、document 等 DOM 对象)
– 与主线程不能直接共享内存,通信必须通过 postMessage()onmessage 传递序列化数据
– 支持加载外部脚本(importScripts)、定时器、fetch、WebSockets 等,但不能操作 DOM
– 生命周期由创建它的脚本控制,可主动终止(worker.terminate())

如何创建并使用一个基础 Worker

1. 新建一个 JS 文件(如 worker.js),写入要后台执行的逻辑:

worker.js

self.onmessage = function(e) {
  const data = e.data;
  let result = 0;
  for (let i = 0; i < data; i++) {
    result += i;
  }
  self.postMessage(result); // 把结果发回主线程
};

登录后复制

2. 在主页面 JS 中创建并通信:

标签: javascript java js 前端 json 浏览器 websocket csv ai win

发布评论 0条评论)

还木有评论哦,快来抢沙发吧~