具有多个参数的HTML 5 webworkers

Fin*_*ofs 5 javascript html5 web-worker

我刚进入HTML5 webworkers,现在我想将多个参数传递给我的工作者.

我在我的页面中有这个:

var username = document.getElementById("username").value;
var server_url = 'localhost';
w.postMessage(username,server_url);
Run Code Online (Sandbox Code Playgroud)

这在我的工人身上:

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

onmessage = function (e,f) {
    username = e.data;
    server_url = f.data;
}
console.log(username);
console.log(server_url);
Run Code Online (Sandbox Code Playgroud)

当我打开它在浏览器中调用worker的页面时: Uncaught TypeError: Failed to execute 'postMessage' on 'Worker': The 2nd argument is neither an array, nor does it have indexed properties.

所有我想做的是有usernameserver_url获取传递给我知道的例子我存的是工人server_url,但在真正的脚本,它是动态的.

请不要只说:改变这一点,做到这一点,但为我提供代码,以便我可以看到它应该如何完成,而不是仍然不得不自己解决.

Cyr*_*ian 5

像这样发布:

w.postMessage({user:username,url:server_url})
Run Code Online (Sandbox Code Playgroud)

在消息事件上做:

onmessage = function (e,f) {
    username = e.data.username;
    server_url = e.data.url;
}
Run Code Online (Sandbox Code Playgroud)

  • 从函数中删除参数“f”。这是不必要的,并且正在造成混乱。 (2认同)