1unitedpower: Problem mit Javascript Single Thread, der Update von DOM blockiert

Beitrag lesen

nein, das ist nicht hacky, das ist genau richtig so.

Das kommt darauf an, was Himmel Bert genau damit vorhat.

Wenn es um rechenintensive, lang andauernde Berechnungen geht, dann wäre es vermutlich sinnvoller die Aufgabe von einem Worker erledigen zu lassen. Mit dem setTimeout kann man die Berechnung zwar in kleine Stücke zerteilen, und so das UI einigermaßen responsiv halten, aber die Gesamtasuführungsdauer nimmt auch zu, durch die vielen kleinen Pausen.

Außerdem wäre es noch eine Überlegung wert, ob man Teile der Berechnung nicht auch auf dem Server ausführen kann. Hier muss man natürlich die Latenz mit abwägen.

Wenn es um Animationen geht, dann wäre requestAnimation-Frame die bessere Alternative. So lassen sich die einzelnen Animationsschritte mit der Framerate takten. Außerdem kann die Browserengine hier optimieren, bspw. wenn sich das Browsertab gerade im Hintergrund befindent.