HEML5 Worker用法笔记

Web Workers 是 HTML5 提供的一个javascript多线程解决方案,我们可以将一些大计算量的代码交由web Worker运行;Web Worker的基本原理就是在当前javascript的主线程中,使用Worker类加载一个javascript文件来开辟一个新的线程,起到互不阻塞执行的效果

1.如何使用Worker呢?

首先,我们要知道,Worker提供的接口有哪些:

(1)主线程和新线程之间数据交换的接口:postMessage,onmessage。

实例对象worker.onmessage(function(e){});worker.postMessage(data);

全局方法onmessage = function(e){};postMessage(data);

到底怎么使用呢?光说不练,就是混蛋,例子如下:

//worker.js
onmessage =function (evt){
  var d = evt.data;//通过evt.data获得发送来的数据

  comsole.log(d);
  postMessage( "你好,主线程" );//将获取到的数据发送会主线程
}



 在html页面中:






 
 
 
 

WEB主线程:

1.通过 worker = new Worker( url ) 加载一个JS文件(即子线程)来创建一个worker,同时返回一个worker实例。

2.通过worker.postMessage( data ) 方法来向worker发送数据。

3.绑定worker.onmessage方法来接收worker发送过来的数据。

4.可以使用 worker.terminate() 来终止一个worker的执行。

worker子线程:

1.通过postMessage( data ) 方法来向主线程发送数据。

2.绑定onmessage方法来接收主线程发送过来的数据。



你可能感兴趣的:(js)