Finlay Roelofs February 2016

HTML 5 webworkers with multiple arguments

I just got into HTML5 webworkers and now I want to pass multiple arguments to my worker.

I have this in my page:

var username = document.getElementById("username").value;
var server_url = 'localhost';
w.postMessage(username,server_url);

and this in my worker:

var username = '';
var server_url = '';

onmessage = function (e,f) {
    username = e.data;
    server_url = f.data;
}
console.log(username);
console.log(server_url);

and when I open it the page which calls the worker in the browser: Uncaught TypeError: Failed to execute 'postMessage' on 'Worker': The 2nd argument is neither an array, nor does it have indexed properties.

all I want to do is have the username and server_url getting passed to the worker I know that in the examples I hardcoded the server_url, but in the real script, it's dynamic.

Please don't just say: change this, do that, but provide me with code so I can see how it should be done rather than still having to figure it out myself.

Answers


Cyril February 2016

Post like this:

w.postMessage({user:username,url:server_url})

on message event do:

onmessage = function (e,f) {
    username = e.data.username;
    server_url = e.data.url;
}

Post Status

Asked in February 2016
Viewed 3,554 times
Voted 6
Answered 1 times

Search




Leave an answer