Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.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 终止web工作程序_Javascript_Web Worker - Fatal编程技术网

Javascript 终止web工作程序

Javascript 终止web工作程序,javascript,web-worker,Javascript,Web Worker,我有一个网络工作者,他在div中添加了一些段落,就像这样 var worker1 = new Worker('many.js'); var worker2 = new Worker('many.js'); var worker3 = new Worker('many.js'); var worker4 = new Worker('many.js'); worker1.onmessage = function (event) { function xx(){$(event

我有一个网络工作者,他在div中添加了一些段落,就像这样

var worker1 = new Worker('many.js');
var worker2 = new Worker('many.js');
var worker3 = new Worker('many.js');
var worker4 = new Worker('many.js');

      worker1.onmessage = function (event) {
      function xx(){$(event.data).appendTo('#div_1');}
      setInterval(xx,4000);
      }; 

      worker2.onmessage = function (event) {
      function xx(){$(event.data).appendTo('#div_2');}
      setInterval(xx,4400);
      };


      function killworker(){
      worker1.terminate();
      }
worker1.terminate();
这是many.js文件

function j()
{return "<p>lorem ispum</p>"}

postMessage(j());
但我希望将其包装在一个函数中,并尝试在按钮发生单击事件后终止它

<button onClick="javascript:killworker();">stop worker</button>
停止工作

我的代码似乎没有终止worker。为什么它不工作?

您的
killworker
函数是在更广泛的上下文中定义的吗?如果是,那就是你的问题。尝试
window.killworker=function()

我的代码现在看起来像

var worker1 = new Worker('many.js');
var worker2 = new Worker('many.js');
var worker3 = new Worker('many.js');
var worker4 = new Worker('many.js');

      var timer = 0;

      worker1.onmessage = function (event) {
      function xx(){$(event.data).appendTo('#div_1');}
      timer = setInterval(xx,2000);
      }; 

       function killworker(){
       clearInterval(timer);
      worker1.terminate();
      }

      worker2.onmessage = function (event) {
      function xx(){$(event.data).appendTo('#div_2');}
      setInterval(xx,2200);
      };

我的按钮
stop worker

您不需要内联事件处理程序中的
javascript:
。虽然你需要它作为
href
,但这与你和你的代码无关,我已经纠正了这一点,谢谢。