我有以下代码:
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 + ")");
};
worker.js:
onmessage = function(e){
postMessage("test");
}
该脚本找到'worker.js'文件,但实际上并没有运行它。我做错了什么?
PS。我正在使用wamp托管这两个脚本,而我正在使用chrome
答案 0 :(得分:2)
worker.js在收到消息之前不会做任何事情。我无法看到你在哪里发送消息。你需要stressWorker.postMessage(...)
之类的东西。
答案 1 :(得分:0)
您确定浏览器支持此特定HTML5功能吗?
This article有很多方法可以测试每项功能的支持情况。工人的测试是
return !!window.Worker;
编辑:正如我所看到的,您的代码存在问题,或者无法找到该文件。您的代码看起来很像this example,除了.js文件代码是这样的,self
:
self.onmessage = function(e) {
self.postMessage("Hello " + e.data);
};
你应该很容易尝试,看看它是否是这里缺少的部分。
答案 2 :(得分: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 + ")");
};
现在您将获得工作人员的回复。 “..”我怀疑路径是错误的。