我的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块中,然后捕捉错误并把它发回来吗。