javascript中用worker实现独立线程

来源:互联网 发布:单源最短路径贪心算法 编辑:程序博客网 时间:2024/06/01 08:15

javascript中用worker实现独立线程

worker在手机web app中实现独立进程,该进程不受界面的改变受到影响,使得worker能够在后台独立计算处理信息。

由于worker.js是封闭的,为了能够实现worker.js和html交互,需要采用postMessage()方法实现数据交互

1、新建worker.js,里面是js代码,是独立的js容器,不会依赖于其他js文件,worker.js不能使用window等对象
function message(){
    setTimeout(function(){
        //向主线程发送event.data.name信息
        postMessage('message');
    },5000);
}
//接收主线程发送的消息
onmessage = function(event){
   if(event.data=="worker"){
         message();
   }
};
2、html文件中创建worker线程
                initWorker();
         function initWorker(){
                //创建一个Worker对象
                var worker = new Worker('worker.js');
                 worker.postMessage('worker');
                //接收worker传递过来的数据
                worker.onmessage = function(event){
           worker.postMessage('worker');                
              };
                worker.onerror = function(e){
                    console.log('erro: ' + e.message);
                    //终止线程
                   worker.terminate();
                };
            };





原创粉丝点击