Rolf B: Jetzt funzt es: Kopf wird angezeigt, danach de Tabelle

Beitrag lesen

Hallo JürgenB,

zuerst dachte ich ja, ich spinne. Kein DocumentFragment und trotzdem so schnell?

Aber dann hab ich gesehen dass Du das table-Element erst mit den Rows füllst und dann erst ins lebendige DOM hängst. Das ist dann sozusagen auch ein DocumentFragment.

Deinen DOM-Test (Nr 3) finde ich allerdings etwas unfair. Die Annahme wäre, dass die Tabelleninhalte als HTML-Fragment aus einer DB kommen. Den Aufwand, um einen solchen Inhalt zu parsen, müsste man mit einrechnen - selbst wenn es ein JSON-serialisiertes Objekt ist aus dem Du das Ziel-DOM generierst.

Was deinen innerHTML (Test 1) so langsam macht ist der <output> Container. Es ist aber NUR output, es liegt nicht am inline-Charakter des Elements. Mach mal ein span oder div draus, das verbessert die Schwuppdizität dramatisch und lässt FF wieder an Chrome vorbeiziehen.

Was mich verblüfft, ist das Tempo des Stringaufbaus. Meine Erfahrung vor ein paar Jahren war, dass das Aufbauen langer Strings mit += übel langsam ist. Daher mein Vorschlag mit Teilstrings, die man in einem Array sammelt. Das ist nach wie vor schnell, aber die Strings sind nicht mehr langsamer.

Rolf

--
sumpsi - posui - clusi