javascript message事件

admin發表於2017-03-31

此事件會在主執行緒或者worke內部收到傳送的資訊時觸發。

應用與web Workers,主執行緒和worker內部都是適用的,下面直接看程式碼例項:

[HTML] 純文字檢視 複製程式碼
<!DOCTYPE html> 
<html> 
<head> 
<meta charset=" utf-8"> 
<meta name="author" content="http://www.softwhy.com/" /> 
<title>螞蟻部落</title> 
<style> 
#antzone{ 
  width:500px; 
} 
</style> 
</head> 
<body> 
<div id="antzone"></div> 
<script type="text/javascript"> 
  var worker=new Worker('demo/html5/js/w.js'); 
  worker.postMessage({n:69}); 
  worker.onmessage=function(e){ 
    document.getElementById('antzone').innerHTML=e.data;         
  }; 
</script> 
</body> 
</html>

w.js中的程式碼如下:

[JavaScript] 純文字檢視 複製程式碼
function calc(n){ 
  var result=[]; 
  for(var i=1;i<10000;i++){ 
    var tem=i; 
    if(i%n==0){ 
      if(i%(10*n)==0){ 
        tem+='<br/>'; 
      } 
      result.push(tem); 
    } 
  } 
   
  self.postMessage(result.join(' ')); 
  self.close(); 
} 
   
onmessage=function(e){ 
  calc(e.data.n); 
};

通過postMessage()方法傳送資訊,如果主執行緒或者worker內部收到資訊的時候就會觸發此事件。

更多關於web Workers的內容可以參閱HTML5 web Workers用法詳解一章節。

相關文章