Skip to content

Web Worker ​

重要通知

。

基本概况 ​

安装配置 ​

使用示例 ​

​

​

使用示例 ​

改进优化 ​

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

Web Workers ​

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

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");

​

​

​

​

​

工程化建设方案 ​

生态系统矩阵集 ​

Released under the MIT License.