web Worker

web Worker 的应用场景,worker线程作处理,主线程不受影响

1、当你的应用程序需要完成150毫秒以上的作务时
2、当你想要做一个类似一个PWA的应用时
3、当你需要大量的 编码/解码工作时
4、当你需要大量的数学计算,加密解密,大量的数据排序时
5、离线访问的时候
6、代码语法检查时、图像处理的时候
7、当你需要频繁使用 IO 网络服务时 ,轮询服务,处理大量数据时候

 

 

 

WebWork能访问和不能访问哪些对象

Worker的性质,可访问如下对象
1、navigator
2、location
3、XMLHttpRequest
4、atob(),和btoa() 64ASCII 转 二进制数据
5、setTimeout /clearTimeout/setInterVal/clearInterval
6、window.applicationCache
7、External scripts "importScripts()"
 
                     
Worker线程 无法访问 父页面的DOM,
不能访问以下对象
1、window
2、document
3、parent Object
                                                        

 

 

 

 

 

 

 

 具体方法

var w = new Worker("w.js");
//错误消息
w.onerror("我是错误的消息");
//接收消息
w.onmessage("我是接收的值");
//发送消息
w.postMessage("发送的值");
//终止worker
w.terminate();

 

 

 

 

Example

//worker.js
onmessage=function(){
    
  importScript("http://www.vmu.com/statuses/userInfo/guser.json?count=10&callback=handler");
  //callback method
  function handler(data){
   //加工 data 返回主线程
   postMessage(data);
  }
}



// main.js //主线程 function startWorker(settings){ var myWorker = new Worker("script/worke.js"); myWorker.addEventListener("message",workerListener,false); myWorker.postMessage(settings); }

 

posted @ 2018-01-23 19:01  慧宁师  阅读(177)  评论(0编辑  收藏  举报