web worker使用

        JavaScript的一个特性就是单线程,web worker的出现解决了JavaScript无法多线程的问题,定义了“Worker”来执行代码的并行线程。

web worker有许多使用上的限制:

1、web worker中无法访问window对象和document对象。

2、和主线程直接的通信只能通过异步消息传递机制来实现。

3、不适宜创建很多的web worker;

web worker的使用:

1、通过Worker()构造函数创建一个新的Worker,传入指定执行JavaScript脚本文件即可;

var worker = new Worker('xxx.js');

2、web worker和主线程之间的通信。

(1) 主线程通过postMessage向worker发送消息;

worker.postMessage(data);

(2) 主线程通过onmessage接收worker发送的消息,event.data为worker返回的消息;

worker.onmessage = function (event) {
  var data=event.data;
}

(3) 主线程关闭worker;

worker.terminate();

(4) 主线程对web worker 的错误监听;

worker.error=function(e){
    
}

(5) worker向主线程发送消息在是通过Worker上的postMessag()方法;

onmessage=function(event){
    postMessage();
};

(6) worker接收主线程发送的消息在是通过Worker上的message事件监听的;

onmessage=function(event){
    var data=event.data;
};

(7) worker关闭自身。

self.close();

3、worker中加载其他脚本文件,引入多个可以用逗号隔开。

importScripts('script1.js');
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值