H5新特性之webWorker

众所周知javascript是单线程语言,这就是js开发难度较低的原因了,因为不需要解决多线程的资源共享问题(例如死锁),但是单线程性能并不好,因此多了一个webWorker实现js的多线程来提升js的性能。

使用很简单,直接上代码:

var worker = new Worker('w.js');
worker.postMessage([5,8,12]);
worker.onmessage = data=>{
   alert(data.data);
}

w.js:

this.onmessage = function(data){
  this.postMessage(sum(data.data));
}

function sum(arry){
  return arry.reduce((temp,item)=>{
    return temp+=item;
  })
}

主要用法就是:

1.new Worker('url~~~')

2.worker.postMessage(任意数据类型);

3.worker.onmessage=function(data){

  // data.data 获取从postMessage的数据

}

w.js的用法也是一样,主要是this.postMessage和this.onmessage=(data)=>{}

ps:注意这个webMessage一定是异步的,而且感觉用处也不是太大,因为w.js不能操作的UI,只能用于计算,而前端的计算本来就不多,更多的计算都是UI相关的计算,但是偏偏webWorker不能对UI修改,显得这个新的对象显得有点鸡肋(如WebSQL一样,最近已被官方放弃)

转载于:https://www.cnblogs.com/amiezhang/p/7875878.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值