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); };
You pass any function to the plugin as an argument and get result in callback. You also can "outsource" object's methods, function with dependecies, anonymous function and lambda. Enjoy.
Limitations Of Web WorkersA worker can't directly manipulate the DOM and has limited access to methods and properties of the window object. A worker can not be run directly from the filesystem. It can only be run via a server.
A web worker is a JavaScript that runs in the background, independently of other scripts, without affecting the performance of the page. You can continue to do whatever you want: clicking, selecting things, etc., while the web worker runs in the background.
As you can see you have the same mechanism for both worker-to-main and main-to-worker messages.
postMessage
method for sending messagesonmessage
member for defining the handler that receives the messagesIn 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)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With