javascript网络工作者 - 如何传递参数? [英] javascript web workers - how do I pass arguments?

查看:81
本文介绍了javascript网络工作者 - 如何传递参数?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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



如果使用这个基本示例,我如何将参数传递给Web worker? / p>

worker.js的内容:

  function doSomething(){
postMessage('done');
}
setTimeout(doSomething(),3000);

js code:

  var worker = new Worker('worker.js'); 
worker.onmessage = function(event){
alert(event.data);
};


解决方案

正如你所看到的,两者都有相同的机制工人到主要和主要到工人的消息。




  • 发送消息的 postMessage 方法

  • 用于定义接收消息的处理程序的 onmessage 成员



In主脚本:

  worker.postMessage(data); 

在工人脚本中:

  self.addEventListener(message,function(e){
//传入的数据可通过e.data
获得},false);

...或只是......

  onmessage = function(e){
//传入的数据可通过e.data
获得;

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


Found the answer some some of my problems, html5 web workers!!!

How do I pass an argument to a web worker though using this basic example?

contents of worker.js:

function doSomething() {
    postMessage( ' done');
}
setTimeout ( "doSomething()", 3000 );

js code:

 var worker = new Worker('worker.js');
  worker.onmessage = function (event) {
    alert(event.data);
  };

解决方案

As you can see you have the same mechanism for both worker-to-main and main-to-worker messages.

  • the postMessage method for sending messages
  • the onmessage member for defining the handler that receives the messages

In the main script:

worker.postMessage(data);

In the worker script:

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

... or just...

onmessage = function(e) {
    // the passed-in data is available via e.data
};

It may be that data has to be a string... (Firefox 3.5+ supports passing in JSON-compatible objects)

这篇关于javascript网络工作者 - 如何传递参数?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆