Mes travailleurs web javascript sont en train de mourir en silence à des endroits aléatoires. Comment puis-je débugger?

StackOverflow https://stackoverflow.com/questions/4770415

Question

Le travailleur Web arrête juste, aucune erreur ou quoi que ce soit. Le code est entièrement déterministe, mais il va mourir à différents points dans le code.

Edit:. Le problème était que je ne maintenait pas une référence à mes travailleurs, et ils semblaient mourir au hasard quand ils ont été recueillis ordures

Était-ce utile?

La solution

Le problème était que je ne maintenait pas une référence à mes travailleurs, et ils semblaient mourir au hasard quand ils ont été recueillis les déchets.

Autres conseils

J'ai trouvé une situation similaire dans Firefox où mon travailleur semblait échouer en silence après un nombre aléatoire d'appels à postMessage. Après plus de creuser, j'ai trouvé le vrai problème. Apparemment, les invocations du travailleur dans Firebug était la question. Firebug touchait un service JS de chrome de Firefox (espace de code privilégié) qui a été à l'origine du travailleur à échouer par intermittence, vous pouvez voir le patch ici: https://bugzilla.mozilla.org/show_bug.cgi?id=651980

Tant que vous faites tout en conformité avec le travailleur spec vous ne devriez pas voir ce problème. En ce qui concerne le correctif à Firebug / Fx, il devrait arriver dans Firefox 5 à la fin de Juin. Espérons que cela vous aide!

Même ici avec un travailleur web ne silencieusement dans Firefox, mais pas en chrome. Utilisait arborjs.org Appelé comme ceci:

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... 
}

Où arbre est l'objet en utilisant un Webworker.

J'ajouté la ligne window.sys = sys; et il fonctionne maintenant comme un charme à la fois dans Firefox et 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...
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top