Wie verhindert man, dass HTML5-Web-Worker abstürzen und somit korrekt auf Nachrichten von Eltern reagieren?

Ich verwende Web-Worker, um einige CPU-intensive Aufgaben zu erledigen, habe aber die Anforderung, dass der Worker auf Nachrichten vom übergeordneten Skript reagiert, während der Worker noch arbeitet.

Der Worker antwortet jedoch nicht auf Nachrichten, während er in einer Verarbeitungsschleife gesperrt ist, und ich habe keine Möglichkeit gefunden, die Nachrichtenwarteschlange abzufragen. Aus diesem Grund scheint die einzige Lösung darin zu bestehen, die Verarbeitung in bestimmten Abständen abzubrechen, damit alle Nachrichten in der Warteschlange bearbeitet werden können.

Die naheliegenden Optionen sind die Verwendung eines Timers (z. B. mit setInterval). Ich habe jedoch gelesen, dass die Mindestverzögerung zwischen den Zündungen ziemlich lang ist http: //ajaxian.com/archives/settimeout-dela) was bedauerlich ist, da es die Verarbeitung stark verlangsamt.

Was denken andere Leute darüber? Ich werde versuchen, den Arbeiter schicken zu lassenonmessage zu sich selbst am Ende jedesonmessage, wodurch effektiv ein Schritt der Verarbeitungsschleife pro Ereignis implementiert wird, das von ihm selbst empfangen wurde, wollte aber nur sehen, ob jemand eine Idee dazu hat.

Vielen Dank

Antworten auf die Frage(6)

Ihre Antwort auf die Frage