Webワーカーは停止するだけで、エラーなどは発生しません。コードは完全に決定論的ですが、コード内のさまざまなポイントで停止します。
編集:問題は、私が労働者への言及を維持していなかったため、彼らがガベージコレクションされたときに彼らがランダムに死んだように見えたということでした。
Webワーカーは停止するだけで、エラーなどは発生しません。コードは完全に決定論的ですが、コード内のさまざまなポイントで停止します。
編集:問題は、私が労働者への言及を維持していなかったため、彼らがガベージコレクションされたときに彼らがランダムに死んだように見えたということでした。
Firefoxでも同様の状況が発生し、postMessageをランダムに呼び出した後、ワーカーがサイレントに失敗しているように見えました。さらに掘り下げてみると、本当の問題が見つかりました。どうやらFirebugのワーカーの呼び出しが問題でした。FirebugがFirefoxのchromeJS(特権コードスペース)のサービスに触れていたため、ワーカーが断続的に失敗していました。そのパッチは、https ://bugzilla.mozilla.org/show_bug.cgi?id=651980で確認できます。
ワーカーの仕様に従ってすべてを実行する限り、この問題は発生しません。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...
}