私のJavaScript Webワーカーは、ランダムな場所で静かに死にかけています。どうすればこれをデバッグできますか?
-
22-10-2019 - |
質問
Webワーカーは停止し、エラーなどはありません。コードは完全に決定論的ですが、コードのさまざまなポイントで死にます。
編集:問題は、私が労働者への言及を維持していないことであり、そのため、ゴミ収集されたときにランダムに死ぬように見えました。
解決
問題は、私が労働者への言及を維持していなかったため、ゴミ収集されたときにランダムに死ぬように見えたということでした。
他のヒント
Firefoxで同様の状況を見つけました。そこでは、ポストメッサージへの乱数の呼び出しの後、労働者が静かに失敗しているように見えました。さらに掘り下げた後、本当の問題を発見しました。どうやらFirebugでの労働者の招集が問題だったようです。 FireBugはFirefoxのChrome JS(特権コードスペース)のサービスに触れていました。 https://bugzilla.mozilla.org/show_bug.cgi?id=651980
労働者の仕様に従ってすべてを行う限り、この問題は見られないはずです。 FireBug/FXへの修正については、6月下旬にFirefox 5に到着するはずです。これがあなたに役立つことを願っています!
ここでも、Webワーカーが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...
}
ここで、アーバーはウェブワーカーを使用するオブジェクトです。
追加しました 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...
}
所属していません StackOverflow