Hallo JürgenB,
du hast teilweise recht. Ich hatte gestern einen Fehler in der Zeitmessung; ich hatte die Zeitbasis für den appendChild(frag) falsch und habe die Zeit für die Fragmentgenerierung im appendChild mit drin.
Es kommt aber auch darauf an, ob man beim Aufbau des Fragments die <td> mit textContent oder mit innerHTML füllt. Wenn in den Tabellenzellen inneres HTML verwendet wird, und sei es auch nur ein <br>, muss man innerHTML verwenden, und dann bricht die Fragmentmethode deutlich ein und die HTML-String Technik gewinnt wieder.
Hier mal eine Fiddle-Spielwiese für die drei Varianten: https://jsfiddle.net/Rolf_b/gvLq1r8t/
Die Zeitmessung der Render-Zeit basiert darauf, dass setTimeout einen Task in die Makrotask-Queue stellt und das Rendering eigentlich vorher passieren sollte. Entweder rendert Firefox 70 die Table tatsächlich 3,5 mal schneller als Chrome 79 (Fuchs bei mit 160ms, Chrome ca 550ms), oder da funktioniert was nicht so wie gedacht. Unter Edge ist das Timing noch unkalkulierbarer, da fliegt der setTimeout teils schon nach 4ms, teils nach knapp 1000ms. Von der gefühlten Schwuppdizität her sind es aber die 1000, nicht die 4 🤢
Rolf
sumpsi - posui - clusi