Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
246 views
in Technique[技术] by (71.8m points)

javascript web workers - how do I pass arguments?

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);
  };
See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

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)


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...