201008Jul

JavaScript: Schnelle Schleifen für DOM-Parsing nutzen

In einem älteren Beitrag des Sun-Bloggers (jetzt Oracle) Greg Reimer finden sich interessante Informationen zum Thema Looping in JavaScript. So hat sich zum einen seine Vermutung bestätigt, dass die length-Eigenschaft (je nach Browser) bei HTML-Collections mehr Zeit benötigt als etwa das gleiche Attribut in Verbindung mit Arrays. Zum anderen hat sich herausgestellt, dass eben mit der Verwendung und dem Caching des length-Attributs bessere Ergebnisse erzielt werden, als wenn lediglich mit einer inkrementellen Zahl gearbeitet wird. Dies bezieht sich in erster Linie auf HTML-Collections.

Greg Reimer's Weblog - What's the Fastest Way to Code a Loop in JavaScript

In einem Loop-Benchmark von Sun können die Ergebnisse von verschiedenen Schleifen begutachtet werden. Der gängigste Weg für einen einfachen Loop stellt also nicht die schnellste Lösung dar (bei HTML-Collections):

  • for (var i = 0; i < htmlCollection.length; i++) { … }

Wesentlich schnellere Operationen erhält man also bei dem Looping von HTML-Nodes mit einer derartigen Schleife:

  • for (var i = 0, len = htmlCollection.length; i < len; i++) { … }

Ebenso kann eine while-Schleife verwendet werden:

  • var i = htmlCollection.length; while (i--) { … }

Diese Vorgehensweisen sind also besonders interessant, wenn es darum geht, DOM-Manipulationen durch nativen JavaScript-Code vorzunehmen.

RSS-Feed abonnieren Bookmark bei Del.icio.us