SharedWorker对象


//共享工作线程允许多个页面共享使用,每个页面都是链接到该共享工作线程的某个端口号上。页面通过该端口与共享工作线程进行通信
var myWorker = new SharedWorker("worker.js");//创建SharedWorker对象
worker.port.onmessage=function(event)
{

  var result=event.data//获取共享线程返回的数据

  alert("计算质数完成"+result);


}

function calculate()

{

   worker.port.postMessage(1233);//还是一样的方式,向共享线程发送数据

}

共享线程执行的代码如下:

onconnect=funciton(event)//共享线程通过onconnect,而不是onmessage

{

  var port=event.ports[0];

  port.onmessage=function(event)

  {

      var data=evenat.data;//获取主页面数据

     var count=cal(data);//计算结果

    port.postMessage(count);//返回给主页面

  }

}

注意:除了用onmessage来设置消息处理方法以外,还可以使用addEventListener添加消息处理,这样做的好处是可以添加多个事件处理方法。不过这时候需要用port.start()显示启动端口上的通信。如果主页面通过addEventListener来完成事件绑定,那么要通过myworker.port.start()显示启动端口通信

myWorker.port.postMessage([first.value,second.value]);//主页面发送数据

//SharedWorker接受数据

onconnect = function(e) {
    var port = e.ports[0];
    port.addEventListener('message', function(e) {
      var workerResult = 'Result: ' + (e.data[0] * e.data[1]);
      port.postMessage(workerResult);
    });
    port.start(); //用onmessage绑定,必须要显式启动端口通信
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值