首先什么是Web Workers
addEventListener("message",function(event)){
var message=event.data;
worker.onmessage=function(event){
Web Workers是将JavaScript程序放在后台运行的机制。原来的HTML的js都是单线程的方式。通常都是单线程方式。通常将js程序与用户界面处于同一线程时运行时,如果此时可处理需要很长时间,那么用户界面将一直停止不动,用户将不能在用户界面上做任何操作。
为了解决上述问题,因此出现了WebWorker这种机制,将需要耗费很长时间的js放在后台作为另一个线程运行,这样在后台运行复杂处理的同时,用户仍然可以在前台界面上进行各种操作。
编程步骤
- 将要在后台运行的js进程的代码独立出来,创建一个单独的js文件。Worker完全在后台运行,因此不能含有任何与用户界面(UI)相关的处理
- Worker环境中不存在window与document对象,如果其中用到了这些对象,将会出错。Prototype.js以及jquery等以DOM为前提创建的库,都不能在其中使用。
- Worker代码文件编写完成之后,将此文件的URL作为参数创建Worker的实例。
- var worker=new Worker("hello.js");创建的Worker因为与主画面属于不同的线程,不能共享变量。此时使用消息机制(Messaging),进行画面与任意Worker间的信息或者数据交换。送信方用postMessage()方法,接收方捕捉message事件。
- 向Worker送出信息worker.postMessage("Hello");
- 接受送信方的信息有两种方式
var message=event.data;
}
//取出信息数据
var message=event.data;
}