Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript HTML5网络工作者发送和;接收号码_Javascript_Html_Web Worker - Fatal编程技术网

Javascript HTML5网络工作者发送和;接收号码

Javascript HTML5网络工作者发送和;接收号码,javascript,html,web-worker,Javascript,Html,Web Worker,如何向webworker发送号码 如何在webworker中接收号码 如果可能,如何在不使用json或javascript对象的情况下执行此操作,因为使用它将添加额外的代码行 编辑: 呃,我有很多人投了反对票,但不知道为什么。。我解释我想做什么 我尝试在webworker中创建计时器 如果我向webworker发送字符串“start”,webworker将开始 间隔(计时器) 如果我向webworker发送一个号码,webworker将设置 间歇 但我不知道如何发送号码 我知道传递给webw

如何向webworker发送号码

  • 如何在webworker中接收号码

  • 如果可能,如何在不使用json或javascript对象的情况下执行此操作,因为使用它将添加额外的代码行

    编辑:

    呃,我有很多人投了反对票,但不知道为什么。。我解释我想做什么

    我尝试在webworker中创建计时器

    • 如果我向webworker发送字符串“start”,webworker将开始 间隔(计时器)
    • 如果我向webworker发送一个号码,webworker将设置 间歇
    但我不知道如何发送号码

    我知道传递给webworker的参数应该是字符串,我已经读了一些教程

    但是我仍然不知道该怎么做,这样我的网络工作者才能识别出一个数字

    因为我尝试了parseInt(),但不起作用

    这是我的密码

    HTML格式的

    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;
        }
    };