网络工作者只是停止,没有错误或任何事情。代码完全是确定性的,但它会在代码中的不同点死掉。
编辑:问题是我没有保留对工人的引用,因此当他们被垃圾收集时,他们似乎随机死亡。
答案 0 :(得分:1)
问题在于我没有保留对工人的提及,所以当他们被垃圾收集时,他们似乎随意死亡。
答案 1 :(得分:1)
我在Firefox中发现了类似的情况,我的工作人员在对postMessage进行随机调用之后似乎默默地失败了。经过多次挖掘,我发现了真正的问题。显然,Firebug中的工人被调用是个问题。 Firebug正在触摸Firefox的Chrome JS(特权代码空间)中的服务,导致工作者间歇性地失败,你可以在这里看到它的补丁:https://bugzilla.mozilla.org/show_bug.cgi?id=651980
只要您按照工作规范执行所有操作,就不应该看到此问题。至于对Firebug / Fx的修复,它应该在6月底到达Firefox 5。希望这能帮到你!
答案 2 :(得分:0)
与此同时,一名网络工作者在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是使用网络工作者的对象。
我添加了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...
}