web-worker 的使用

  JavaScript采用的是单线程模式,它每次也只能执行一个事件,所以它在加载大量的事件的时候会比较慢。

而web-worker的作用就是给JavaScript提供一个多线程的模式。

  注意的是

    web-worker是无法操作DOM的节点的,它不能再主线程中调用的子线程中的函数,并且只能使用原生js进行编写。

    还有web-worker我在网上看见说是在部分浏览器里面是无效的,我在电脑上Google及Safari(电脑上仅有这两个浏览器╮( ̄▽ ̄)╭)上面测试了一下是没有问题的。

web-worker的使用

  创建主线程

    使用new来创建一个worker的函数,

var worker = new Worker("./work.js") 

    然后使用worker.postMessage('...')向子线程方式数据

    接收子线程的数据

worker.onmessage = function(){
    console.log(event.data)
}

  子线程

    在主线程中想子线程发布的数据使用

onmessage =function (event){
    var mar_skt = event.data;   //通过event.data获得发送来的数据
    console.log(mar_skt);       //打印数据
}

    然后在使用postMessage向主线程发生在子线程内容执行完毕的内容

postMessage(data)

  在不想要worker的时候也可以直接使用terminate()来结束它

worker.terminate();

  

猜你喜欢

转载自www.cnblogs.com/nixu/p/10595747.html