首页 > 代码库 > Web worker 多线程处理数据
Web worker 多线程处理数据
流程:worker ------------àpostMessage----------------à任务沲----------------àpostMessage---------------à事件处理程序-------------------àonMessage------------------à返回信息.
写了一个成功的例子:(有两个文件,一个是主页文件 ,另一个是线程js文件)
1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset=‘utf-8‘> 5 <title>title</title> 6 <script> 7 window.onload=function(){ 8 9 10 //创建一个线程对象11 12 var worker=new Worker(‘work.js‘); //在线程中引用一个work.js文件13 14 15 //获取Worker进程的返回值,可以通过onmessage属性绑定一个事件处理程序,16 //当worker的postmessage()方法被调用时,这个被绑定的程序就会被触发17 18 worker.onmessage=function(e){19 //处理收到的消息20 console.log(e.data); //该页面的onmessage方法是用来向页面处理数据的;21 22 }23 24 addEventListener(‘error‘,errorHandle,true); //当线程发生错误的时候触发该方法25 26 document.querySelector(‘#btn‘).addEventListener(‘click‘,stopWorker,true); //绑定终止线程方法27 28 //importScripts()函数加载js文件到Worker进程中去,例如加载 hello.js importScripts(‘hello.js‘);29 30 31 worker.postMessage(‘hello WebWorker!‘);32 36 37 /**** 事件处理函数 ****/38 39 function errorHandle(e){40 console.log(e.message,e);41 }42 43 44 function stopWorker(){45 worker.terminate(); //终止线程方法46 }47 48 49 50 51 }52 </script>53 </head>54 <body>55 <button id=‘btn‘>dialog</button>56 </body>57 </html>
{2:线程文件}
1 //该事件用来监听线程中的postMessage事件 , 作用是用来接收线程的回送数据, 2 //并且把数据发回到web应用程序页面的onmessage监听处理数据事件 3 4 /*onmessage=function(e){ 5 6 postMessage(e.data); //把线程中的数据发回到页面中去. 7 8 }*/ 9 10 11 12 //第二种方法使用addEventListenner注册后台线程事件;13 14 addEventListener(‘message‘,messageHandle,true);15 16 17 function messageHandle(e){18 19 postMessage(e.data);20 21 }
Web worker 多线程处理数据
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。