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

 

posted on 2015-09-10 21:09  xiaomie  阅读(224)  评论(0编辑  收藏  举报

导航