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新特性之移动设备api

html5网页水印sdk的实现方法

html5 source标签详解

html5原生拖拽操作实例讲解

利用html实现一个个人信息表的网页(代码实例)

html5 menu标签的具体定义和html5menu标签的用法详细解析

html5返回一个mediaerror对象的属性error

h5正常文本框提示语的实现方法

如何利用html5实现等待加载动画的效果

html5中的常见错误用法

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




打赏

取消

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

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

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

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

评论

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