Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/378.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_Debugging_Web Worker - Fatal编程技术网

我的javascript web工作人员在任意地点悄无声息地死去。我如何调试这个?

我的javascript web工作人员在任意地点悄无声息地死去。我如何调试这个?,javascript,debugging,web-worker,Javascript,Debugging,Web Worker,网络工作者只是停下来,没有错误或任何事情。代码是完全确定的,但它将在代码中的不同点消亡 编辑:问题是我没有保留对我的员工的引用,因此他们在垃圾收集时似乎会随机死亡。问题是我没有保留对我的员工的引用,因此,当他们被垃圾收集时,他们似乎会随机死亡。我在Firefox中发现了类似的情况,在对postMessage进行了随机次数的调用之后,我的工作人员似乎在默默地失败。经过更多的挖掘,我发现了真正的问题。显然,Firebug中工作人员的调用是个问题。Firebug正在接触Firefox的chrome J

网络工作者只是停下来,没有错误或任何事情。代码是完全确定的,但它将在代码中的不同点消亡


编辑:问题是我没有保留对我的员工的引用,因此他们在垃圾收集时似乎会随机死亡。

问题是我没有保留对我的员工的引用,因此,当他们被垃圾收集时,他们似乎会随机死亡。

我在Firefox中发现了类似的情况,在对postMessage进行了随机次数的调用之后,我的工作人员似乎在默默地失败。经过更多的挖掘,我发现了真正的问题。显然,Firebug中工作人员的调用是个问题。Firebug正在接触Firefox的chrome JS(特权代码空间)中的一个服务,该服务导致worker间歇性失败,您可以在此处看到它的补丁:


只要你按照工人规范做每件事,你就不会看到这个问题。至于Firebug/Fx的修复,它应该在6月底到达Firefox5。希望这对你有帮助

在firefox中,一名网络工作者悄悄地失败了,但在chrome中没有失败。正在使用arborjs.org,名称如下:

buildVisualization = function() {
  var sys = arbor.ParticleSystem(200, 200, 0.9); // create the system with sensible repulsion/stiffness/friction 
  sys.parameters({gravity:true}); // use center-gravity to make the graph settle nicely (ymmv) 
  sys.renderer = Renderer("#viewport"); // our newly created renderer will have its .init() method called shortly by sys... 
}
其中arbor是使用webworker的对象

我添加了
window.sys=sys行,它现在在firefox和chrome中都像一个魅力

buildVisualization = function() {
  var sys = arbor.ParticleSystem(200, 200, 0.9); // create the system with sensible repulsion/stiffness/friction
  window.sys = sys;
  sys.parameters({gravity:true}); // use center-gravity to make the graph settle nicely (ymmv)
  sys.renderer = Renderer("#viewport"); // our newly created renderer will have its .init() method called shortly by sys...
}

如果没有一个简单的测试用例,它将很难帮助您。好的,我会尽量把它简化。谢谢你的推荐。只是一个想法……你能把你的代码包装在一个try/catch块中,然后捕捉错误并把它发回来吗。