HTML5-Web Worker APIs的代码详解


本文摘自PHP中文网,作者黄舟,侵删。

1.概述
HTML5 Web Worker可以使Javascript程序在后台单线程执行大量耗时的计算任务。Web Worker在执行时不能直接访问DOM。Web Worker也会消耗CPU和系统资源。Web Worker与页面间的通信可以通过Web Worker的方法postMessage和message事件。

2.浏览器支持检测

1

2

3

4

5

6

7

8

9

10

11

12

function loadDemo()

   {

       

if

 (typeof(Worker) !== "undefined")

      {

          

document

.getElementById("support").innerHTML = 

            "Excellent! Your browser supports HTML5 Web Workers";

      }

   }

3.worker对象
worker对象是window对象的子对象,它有下面几个方法:
?Worker(jsFile_URL):构造函数,参数是一个用于执行Web Worker任务的JavaScript文件的URL地址,可以是相对或绝对地址。可以递归建立worker。在页面调用。
?terminate():终止worker,终止后不能再重用,只能重建。
在页面调用。
?close():终止worker,在Worker内调用。
?importScripts(jsFile_1_URL, jsFile_2_URL, ... ):异步地向一个已存在的worker导入JavaScript文件,JavaScript的按照参数的顺序执行。在Worker脚本内部调用。
?postMessage(msg):创建werker的页面与worker之间通信的方法,例如:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

    // -------------由页面向worker

发送消息

------------------

      document.getElementById("helloButton").

onclick

 = function() {

         worker.postMessage("Here's a message

for

 you");

      }

      // -------------页面接收来自worker的消息----------------     

      worker.addEvent

List

ener("message", messageHan

dl

er, true);

      function messageHandler(e) {

         // process message from worker

      }

      // -------------JavaScript

文件处理

来自页面的消息----------------

      addEventListener("message", messageHandler, true);

      function messageHandler(e) {

         postMessage("worker says: " + e.data + " too");

      }

4.错误处理

1

2

3

4

5

// -------------在页面处理来自worker的消息----------------

  worker.addEventListener("error", errorHandler, true);

  function errorHandler(e) {

     console.log(e.message, e);

  }

5.使用定时器
尽管worker不能直接访问DOM中的对象,但可以完全使用window对象中与时间有关的方法和属性,也可以使用部分其他属性。如:

1

2

3

4

  var t =

set

Time

out(postMessage, 2000, "delayed message");

以上就是HTML5-Web Worker APIs的代码详解的详细内容,更多文章请关注木庄网络博客

相关阅读 >>

HTML5的开发工具有哪些

HTML5实现留言板的代码实例分享

如何使用HTML5实现地理位置的获取

服务端主动发送数据回客户端在h5里的实现步奏

HTML5通过postmessage进行跨域通信的方法_HTML5教程技巧

HTML5中重新加载音频/视频元素的方法load()

HTML5与css3的新交互特性

前端HTML5框架有哪些?HTML5常见六大框架

HTML5拖放的实现方法

HTML5前景怎么样

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




打赏

取消

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

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

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

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

评论

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