web workers简介
web worker 他是运行在后台的js。他是一个独立的脚本,不影响你的js的性能。
主线程相应用户操作的。如果让主线程做很复杂的操作,oh,no.
ww底层肯定也是运用多线程的处理的~
方法:
postMessage() 向浏览器(html页面)传回消息
terminate()--终止ww,并释放浏览器/计算机资源
事件:
onmessage
//index.js var numDiv; var work=null; window.onload=function(){ numDiv = document.getElementById('numDiv'); document.getElementById('start').onclick=startWork; document.getElementById('end').onclick=function(){ if(work){ work.terminate(); work=null; } }; function startWork(){ if(work){ return ; } work = new Worker('count.js'); work.postMessage('123'); work.onmessage=function(e){ numDiv.innerHTML=e.data; } console.log(self) } } //count.js var countNum = 100; console.log(self) function count() { // self.onmessage=function(){ self.postMessage(countNum); countNum++; // } setTimeout(count,1000) } count()
<!DOCTYPE html> <html> <head> <title></title> </head> <body> <div id="numDiv">0</div> <button id="start">start</button> <button id="end">end</button> <script type="text/javascript" src="index.js"></script> </body> </html>
此处有:http://blog.jobbole.com/30592/?utm_source=rss&utm_medium=rss&utm_campaign=html5-web-worker%25e7%259a%2584%25e4%25bd%25bf%25e7%2594%25a8