ein schlauer
Lounge-Member
Die meisten Browser rufen Timeouts nur ca. alle 20ms auf. Eben weil Browser viel mehr machen müssen wofür sie auch Zeit brauchen. JS Timeouts sollen nicht den kompletten Browser einfrieren können.
Und noch mal: Animationen haben nichts mit dem Timeout zu tun, sondern sind Resourcenfressende JS Dinge. D.h. deine Beobachtungen sind keine Konsequenz der Timeouts, sondern dass der Browser mit etwas beschäftigt ist und dann Prioritäten setzt. Dann kann es passieren, dass eine JS Bewegung in einem Hintergrundtab nicht ausgeführt wird, weil es (für den Browser) nicht wichtig ist, sondern er es ist damit beschäftigt ein andere Tab zu fokusieren oder was auch immer du siehst.
Übrigens eine Beobachtung die auch im Rahmen dieser Diskussion gemacht habe, wenn du die Timeouts in der Timerschleife mit einem Wert um die 20ms aufrufst, laufen viele paralelle Animationen flüssiger.
Das Threads bisher in JS nicht eingeflossen sind, liegt wohl daran, dass es damals als es entwickelt wurde, keine Notwendigkeit dafür gab und es auch nicht so einfach Betriebsystemübergreifen umsetztbar war.
Und noch mal: Animationen haben nichts mit dem Timeout zu tun, sondern sind Resourcenfressende JS Dinge. D.h. deine Beobachtungen sind keine Konsequenz der Timeouts, sondern dass der Browser mit etwas beschäftigt ist und dann Prioritäten setzt. Dann kann es passieren, dass eine JS Bewegung in einem Hintergrundtab nicht ausgeführt wird, weil es (für den Browser) nicht wichtig ist, sondern er es ist damit beschäftigt ein andere Tab zu fokusieren oder was auch immer du siehst.
Übrigens eine Beobachtung die auch im Rahmen dieser Diskussion gemacht habe, wenn du die Timeouts in der Timerschleife mit einem Wert um die 20ms aufrufst, laufen viele paralelle Animationen flüssiger.
Das Threads bisher in JS nicht eingeflossen sind, liegt wohl daran, dass es damals als es entwickelt wurde, keine Notwendigkeit dafür gab und es auch nicht so einfach Betriebsystemübergreifen umsetztbar war.