Web Worker

重要通知

基本概况

安装配置

使用示例

使用示例

改进优化

问题,改进思路,具体方案。

Web Workers

通过使用Web Workers,Web应用程序可以在独立于主线程的后台线程中,用于更耗费 CPU 资源的任务。这样做的好处是可以在独立线程中执行费时的处理任务,从而允许主线程(通常是UI线程)不会因此被阻塞/放慢。 web worker 是运行在后台的 JavaScript,不会影响页面的性能 用于更耗费 CPU 资源的任务

  • MDN:https://developer.mozilla.org/zh-CN/docs/Web/API/Web_Workers_API

Web Workers与主进程程序通信

//主线程从子线程接收的消息
worker.onmessage = function(event) {
  console.log(event);
};

// 子线程向主线程发送消息
postMessage(data);

Worker线程约束限制条例

受主线程控制 不能操作DOM对象 | window document parent 遵循同源策略

为什么Worker受主线程控制?

这与JS为什么被设计成单线程的原因是一致的;

为什么Worker不能操作DOM?

这与JS为什么被设计成单线程的原因是一致的;

Web Workers访问网络

worker 可以通过 XMLHttpRequest 来访问网络,只不过 XMLHttpRequest 的 responseXML 和 channel 这两个属性的值将总是 null 。

Shared Workers

SharedWorker 接口代表一种特定类型的 worker,可以从几个浏览上下文中访问,例如几个窗口、iframe 或其他 worker。

同源策略

如果要使 SharedWorker 连接到多个不同的页面,这些页面必须是同源。

多个Tab网页共享一个Worker进程

var worker = new SharedWorker("SharedWorker.js");

工程化建设方案

生态系统矩阵集

Last Updated:
Contributors: 709992523