Web Worker
Web Worker 的作用是为 JavaScript 创造多线程环境,允许主线程创建 Worker 线程,将一部分任务分配给 worker 运行。在主线程运行的同时,Worker 线程在后台运行,互不干扰。
Worker 可以被创建多个,且 Worker 之间均为独立的线程,Worker 之间以及主线程之间,是不会共享任何作用域或资源(包括 DOM 资源)
Worker 线程一旦新建成功,就会始终运行,不会被主线程上的活动打断,这样有利于随时响应主线程的通信。但这也造成了 Worker 比较耗费资源,一旦使用完毕就应该关闭。
Worker 环境
在 Worker 内部是无法访问主程序的任何资源的,即不能访问它的任何全局变量 ,也不能访问页面的 DOM 或其他资源,这是一个完全独立的线程
Web Worker 通常应用在以下方面:
- 处理密集型数学计算
- 大数据集排序
- 数据处理
- 高流量网络通信
关于 Worker 的使用方法,可参考 http://www.ruanyifeng.com/blog/2018/07/web-worker.html
Worker API 文档 https://developer.mozilla.org/zh-CN/docs/Web/API/Worker