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); }
邮箱:ssvnet@126.com