Javascript HTML5网络工作者发送和;接收号码
如何向webworker发送号码Javascript HTML5网络工作者发送和;接收号码,javascript,html,web-worker,Javascript,Html,Web Worker,如何向webworker发送号码 如何在webworker中接收号码 如果可能,如何在不使用json或javascript对象的情况下执行此操作,因为使用它将添加额外的代码行 编辑: 呃,我有很多人投了反对票,但不知道为什么。。我解释我想做什么 我尝试在webworker中创建计时器 如果我向webworker发送字符串“start”,webworker将开始 间隔(计时器) 如果我向webworker发送一个号码,webworker将设置 间歇 但我不知道如何发送号码 我知道传递给webw
- 如果我向webworker发送字符串“start”,webworker将开始 间隔(计时器)
- 如果我向webworker发送一个号码,webworker将设置 间歇
window.onload = function(){
var worker = new Worker("Thread.js");
worker.postMessage("1500"); //set duration of interval
worker.postMessage("start"); //start the interval
worker.onmessage = function(e){
document.body.innerHTML += '<p> worker receive: '+e.data+'</p>';
}
worker.onerror = function(e){
document.body.innderHTML += "<p> worker error"+e.data+"</p>";
}
}
这不起作用,因为
parseInt
不会抛出错误,而是返回NaN
(不是数字)
您还存在另一个bug:如果您希望在两条消息之间保持这两条消息,则需要在onmessage
之外声明timer
和duration
请注意,除非重新启动间隔,否则更改持续时间不会影响间隔
var timer;
var duration = 1000;
onmessage = function(e) {
var msg = e.data ;
var number = parseInt(msg);
if(msg === "start") {
timer = setInterval(function() {
postMessage( "lalala" );
}, duration);
} else if(msg === "stop") {
clearInterval(timer);
} else if(!isNaN(msg)) {
duration = number;
}
};
MDN有一个很好的关于WebWorker API的教程:你发布的内容有什么问题?@CanŞahinBakır@meskobalazs谢谢你的推荐,先生。。但我还是不知道该怎么办。。。我编辑了我的问题,以便它能提供更多信息clear@SebastienC. 它在chrome中什么都不做。。应该在文件正文中加上一段谢谢。。原谅我的愚蠢。。现在有道理了
var timer;
var duration = 1000;
onmessage = function(e) {
var msg = e.data ;
var number = parseInt(msg);
if(msg === "start") {
timer = setInterval(function() {
postMessage( "lalala" );
}, duration);
} else if(msg === "stop") {
clearInterval(timer);
} else if(!isNaN(msg)) {
duration = number;
}
};