Hallo Matthias,
ich hätte jetzt vermutet, dass man mit dem Video die Fragen von Rolf beantworten kann:
Was mir nicht klar ist: Ist aus Sicht der Engine jeder dieser Aufrufe ein neuer Task mit einer neuen Layoutphase? Oder laufen sie alle 5 und ERST DANN folgt die Layoutphase?
Kommt drauf an, wie das Click-Event getriggert wird.
Bei Click durch Nutzerinteraktion ist ein EventListener gleich einem Task mit dem Ergebnis:
erster Eventlistener (= task) --> dann alle angesammelten Microtasks --> dann Rendering --> dann zweiter Eventlistener --> alle angesammelten Microtasks --> dann Rendering --> dritter Eventlistener --> alle angesammelten Microtasks --> dann Rendering usw.
Bei Click via Javascript
Zuerst alle EventListener --> erst dann alle angesammelten Microtasks --> und ganz zum Schluss erst ein rendering
Was ist, wenn jede dieser 5 Funktionen mit queueMicrotask eine Funktion f1 bis f5 in die Microtask-Queue stellt?
Siehe oben, wenn Click durch Nutzerinteraktion erfolgt, dann erfolgt rendering jeweils nach f1, f2, f3, f4, und f5. Bei Click durch Javascript erfolgt rendering erst, wenn f1 bis f5 abgearbeitet wurden.
Gruss Michael