Moin!
Nach deiner Antwort habe ich auch einen Test durchgeführt und dabei festgestellt, das unter Last sowohl die per setTimeout als auch die per setInterval gestarteten Funktionen sich "hinten anstellen" und erst ausgeführt werden, wenn andere Funktionen fertig sind.
Richtig. Und logisch. Javascript ist keine Multitasking-Programmiersprache, es kann immer nur eine Codestelle zur Zeit ausgeführt werden. Wenn also eine aufwendige Schleife noch aktiv ist, wird trotz setTimeout oder setInterval diese Schleife nicht unterbrochen, sondern das Ende dieses Skriptteils abgewartet.
Ansonsten wäre Javascript deutlich komplexer zu programmieren, weil man sich mit der möglichen Unterbrechung an jeder beliebigen Stelle herumschlagen müßte. Dieses explizite Single-Task-Prinzip führt zu extremer Einfachheit.
- Sven Rautenberg
"Love your nation - respect the others."