webWorker开启多线程

<input type="text" name="ipt" id="ipt" value="" />
         <button id="start">start</button>
         <button id="stop">stop</button>
         <button id="ale">alert</button>
 <script type="text/javascript">
     var ipt = document.getElementById("ipt");
     var stop = document.getElementById("stop");
     var start = document.getElementById("start");
     var ale = document.getElementById("ale");
     console.log(Worker)
     var worker = new Worker("test.js");
     worker.onmessage = function(){
     console.log("监听")
         ipt.value = event.data;
     };
     stop.addEventListener("click",function(){
         //用于关闭worker线程
        worker.terminate();
    });
     start.addEventListener("click",function(){
        //开起worker线程
         worker = new Worker("test.js");
     });
     ale.addEventListener("click",function(){
         alert("i'm a dialog");
     });
</script>

test.js文件

var i = 0;
function mainFunc(){
     i++;
     //把i发送到浏览器的js引擎线程里
     postMessage(i);
     console.log(i)
}
var id = setInterval(mainFunc,1000);

 

posted @ 2020-12-29 11:37  夏之轩语  阅读(250)  评论(0编辑  收藏  举报