2

网络工作者只是停止,没有错误或任何东西。代码完全是确定性的,但它会在代码中的不同点消失。

编辑:问题是我没有维护对我的工人的引用,所以当他们被垃圾收集时,他们似乎随机死亡。

4

3 回答 3

1

我在 Firefox 中发现了类似的情况,在随机数次调用 postMessage 后,我的工作人员似乎默默地失败了。经过更多的挖掘,我发现了真正的问题。显然,在 Firebug 中调用工人是问题所在。Firebug 正在触及 Firefox 的 chrome JS(特权代码空间)中的一项服务,该服务导致 worker 间歇性失败,您可以在此处查看它的补丁:https ://bugzilla.mozilla.org/show_bug.cgi?id=651980

只要您按照工人规范做所有事情,您就不应该看到这个问题。至于 Firebug/Fx 的修复,它应该会在 6 月下旬出现在 Firefox 5 中。希望这对你有帮助!

于 2011-05-27T13:17:23.770 回答
1

问题是我没有维护对我的工人的引用,所以当他们被垃圾收集时,他们似乎随机死亡。

于 2011-01-24T13:35:56.323 回答
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 是使用 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...
}
于 2012-10-05T21:34:01.410 回答