1

我有以下代码:

var stressWorker = new Worker("./test/webworkers/worker.js");
stressWorker.onmessage = function(event){
    alert(event.data);
};
stressWorker.onerror = function(event){
    throw new Error(event.message + " (" + event.filename + ":" + event.lineno + ")");
};

工人.js:

onmessage = function(e){
   postMessage("test");
}

该脚本找到了“worker.js”文件,但实际上并没有运行它。我究竟做错了什么?

PS。我正在使用 wamp 托管两个脚本,我正在使用 chrome

4

3 回答 3

1

worker.js 在收到消息之前不会做任何事情。我看不到你在哪里给它发消息。你需要stressWorker.postMessage(...)某个地方的东西。

于 2011-06-05T16:09:53.897 回答
0

您确定您的浏览器支持这个特定的 HTML5 功能吗?

本文有很多方法来测试对每个功能的支持。工人的测试是

return !!window.Worker;

编辑:正如我所见,您的代码有问题或找不到文件。您的代码看起来很像这个例子,除了 .js 文件代码是这样的,带有self

self.onmessage = function(e) {  
    self.postMessage("Hello " + e.data);  
};  

你应该很容易尝试一下,看看它是否是这里缺少的部分。

于 2011-06-05T14:58:56.113 回答
0

您应该记住的一件事如果您在同一来源上运行脚本并使用 chrome,您应该使用标志--allow-file-access-from-files启动 chrome 或者您应该在本地服务器上运行应用程序。

查看代码

 var stressWorker = new Worker("../test/webworkers/worker.js");
    stressWorker.onmessage = function(event){
        alert(event.data);
    };
    stressWorker.postMessage("Hello there");
    stressWorker.onerror = function(event){
        throw new Error(event.message + " (" + event.filename + ":" + event.lineno + ")");
    };

现在您将收到工作人员的回复。“..” 我怀疑路径是错误的。

于 2012-08-06T08:46:50.470 回答