001_web worker 介绍

 

1. javascript 语言设计 “单线程” , 在浏览器上 “同步阻塞式” 执行。 会限制 “多核计算机”(CPU) 的计算能力;

 

2. 为 js 执行创造多线程环境 (计算密集, 高延迟任务)
  1* 主线程创建 worker 线程, 执行任务
  2* worker 线程后台执行 (不会被主线程活动打断)
  3* worker 完成计算任务后,返回给主线程
  4* worker线程 比较耗资源,使用完毕,马上关闭
  ^ 主线程多在负责 "UI交互", 使用`worker线程`保证其流畅性。


3. 限制
 Web Worker 有以下几个使用注意点。

(1)同源限制
  分配给 Worker 线程运行的脚本文件,必须与主线程的脚本文件同源。

(2)DOM 限制
  Worker 线程所在的全局对象,与主线程不一样,无法读取主线程所在网页的 DOM 对象,也无法使用document、window、parent这些对象。但是,Worker 线程可以navigator对象和location对象。

(3)通信联系
  Worker 线程和主线程不在同一个上下文环境,它们不能直接通信,必须通过消息完成。

(4)脚本限制
  Worker 线程不能执行alert()方法和confirm()方法,但可以使用 XMLHttpRequest 对象发出 AJAX 请求。

(5)文件限制
  Worker 线程无法读取本地文件,即不能打开本机的文件系统(file://),它所加载的脚本,必须来自网络。

 

posted @ 2019-02-18 20:35  aocn  阅读(88)  评论(0)    收藏  举报