H5里的postMessage API图文详解 详细介绍


当前第2页 返回上一页

source ?C 消息源,消息的发送窗口/iframe。
origin ?C 消息源的URI(可能包含协议、域名和端口),用来验证数据源。
data ?C 发送方发送给接收方的数据。

调用实例
主线程中创建 Worker 实例,并监听 onmessage 事件

JavaScript Code复制内容到剪贴板

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

<html>   

<head>   

<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) {   

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

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

      event.data+"<br/>";   

  };   

 }   

</script>   

</head>   

<body onload="init()">   

<p id="result"></p>   

</body>   

</html>


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

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

JavaScript Code复制内容到剪贴板

1

2

3

4

5

6

7

8

9

10

11

12

13

14

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());


相信看了这些案例你已经掌握了方法,更多精彩请关注php中文网其它相关文章!

相关阅读:

用Js操作HTTP的Cookie的实现步骤

html 边框虚线的实现步骤

AJAX的常用语法是什么

以上就是H5里的postMessage API图文详解 详细介绍的详细内容,更多文章请关注木庄网络博客

返回前面的内容

相关阅读 >>

断点续传原理是什么?怎么利用html5实现文件断点续传

jquery实现带弹窗和次数的转盘抽奖(代码)

html5多媒体audio和video详细介绍(一)

html5剪切板功能的实现

html5中的progress元素的详细介绍及兼容性处理

html5仿amd9官网酷炫的下载引导页动画特效的示例代码

html5幻灯片系统:h5slides

html5 学习filereader接口代码实例分享9(图)

html5视频播放教程实例

h5制作虚拟键盘时出现输入框遮挡的情况怎么办?

更多相关阅读请进入《postmessage》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...