加入收藏 | 设为首页 | 会员中心 | 我要投稿 焦作站长网 (https://www.0391zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

HTML5中的postMessage API基本使用教程

发布时间:2020-03-13 21:07:22 所属栏目:MySql教程 来源:站长网
导读:window.postMessage经常被人们利用来做跨域数据传递,下面将为大家来介绍HTML5中的postMessage API基本使用教程,需要的朋友可以参考下

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">    

<title>Test Web worker</title>    

<script type="text/JavaScript">    

 function init(){    

  var worker = new Worker('compute.js');    

  //event 参数中有 data 属性,就是子线程中返回的结果数据   

  worker.onmessage= function (event) {    

   // 把子线程返回的结果添加到 div 上   

   document.getElementById("result").innerHTML +=    

      event.data+"<br/>";    

  };    

 }    

</script>    

</head>    

<body onload="init()">    

<div id="result"></div>    

</body>    

</html>  

在客户端的 compute.js 中,只是简单的重复多次加和操作,最后通过 postMessage 方法把结果返回给主线程,目的就是等待一段时间。而在这段时间内,主线程不应该被阻塞,用户可以通过拖拽浏览器,变大缩小浏览器窗口等操作测试这一现象。这个非阻塞主线程的结果就是 Web Workers 想达到的目的。

2. compute.js 中调用 postMessage 方法返回计算结果

JavaScript Code复制内容到剪贴板

var i=0;    

  

function timedCount(){    

 for(var j=0,sum=0;j<100;j++){    

  for(var i=0;i<100000000;i++){    

   sum+=i;    

  }    

 }    

 // 调用 postMessage 向主线程发送消息   

 postMessage(sum);    

}    

  

postMessage("Before computing,"+new Date());    

timedCount();    

postMessage("After computing,"+new Date());  

(编辑:焦作站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

推荐文章
    热点阅读