javascript网络工作者 - 如何传递参数?

Joe*_*Joe 21 javascript

找到了我的一些问题的答案,html5网络工作者!

虽然使用这个基本示例,如何将参数传递给Web worker?

worker.js的内容:

function doSomething() {
    postMessage( ' done');
}
setTimeout ( "doSomething()", 3000 );
Run Code Online (Sandbox Code Playgroud)

js代码:

 var worker = new Worker('worker.js');
  worker.onmessage = function (event) {
    alert(event.data);
  };
Run Code Online (Sandbox Code Playgroud)

Šim*_*das 34

正如您所看到的,对于工作者到主体和主要工作者消息,您具有相同的机制.

  • postMessage发送消息的方法
  • onmessage用于定义接收消息的处理程序的成员

在主脚本中:

worker.postMessage(data);
Run Code Online (Sandbox Code Playgroud)

在工作脚本中:

self.addEventListener("message", function(e) {
    // the passed-in data is available via e.data
}, false);
Run Code Online (Sandbox Code Playgroud)

... 要不就...

onmessage = function(e) {
    // the passed-in data is available via e.data
};
Run Code Online (Sandbox Code Playgroud)

可能是数据必须是字符串...(Firefox 3.5+支持传入与JSON兼容的对象)

  • @AndreiCristianProdan 工作者的全局范围,就像网页上的“窗口”。文档:http://msdn.microsoft.com/en-us/library/windows/apps/hh453270.aspx (2认同)