jQuery Code optimieren

- ,

jQuery ist ein sehr Praktisches JavaScript Framework, welches einfach zu bedienen und auch ganz schön schnell ist. Seit der Version 1.3 sind die Selectoren auch nochmals um ein vielfaches schneller geworden. Trotzdem ist es, vor allem bei grösseren Projekten, nie verkehrt den JavaScript Code zu optimieren. Dafür habe ich einige einfache Tips, welche helfen die Ausführungszeit des JavaScripts zu verringern.

Herkömliche Browser Funktionen sind immer schneller als Funktionen in einer Library

Beispielsweise sollte man eher das normale for () vom JavaScript benützen als die jQuery Funktion $.each() auch wenn diese mehr Funktionen liefert. Ebenso sollte darauf geachtet werden, dass möglichst wenig Funktionen benützt werden.  Also das man sich erst den gesamten String zusammenbaut und erst danach den String in den Ort im DOM einfügt, an welchem er hin gehört.

Keine langen String Verkettungen machen, stattdessen die Array Fuktion join nützen

 var tmp = '';
for (var i=0; i< =rows.length; i++) {
       tmp += '
'+rows[i]+''; } alert(tmp); // ist schneller var tmp = []; for (var i=1; i< =rows.length; i++) { tmp[i] = '
'+rows[i-1]+''; $ } alert(tmp.join(''));

Einfachere Selectoren auf kleinere DOM Teile angewendet sind schneller</b><br /> Am schnellsten ist der Selector $(‘#id’). Wenn immer möglich sollte man für jedes Element, welches angesprochen werden soll eine eigene ID setzten und das Element darüber ansprechen. Dies ist auf jeden fall der schnellste Weg ein Element anzusprechen. Der Zweitschnellste, ist dasder Selector $(‘tag’) über einen HTML Tag. Auch Kombiniert sind diese beiden sehr schnell.

var bereich = $('#container');
var link = bereich.find('a');
var tabelle = bereich.find('table');
  1. Pascal sagt:

    Interessant interessant .. bring ruhig meh so züg.
    Cheers
    Pascal

  2. Auf jeden Fall interessant, aber hast du auch Zahlen die das ganze belegen? Da könnte man zudem auch Größenordnungen ablesen.

    btw: Premature optimisation is the root of all evil.

  3. Jan sagt:

    Hier hat sich mal wer die mühe gemacht das zu messen:
    http://www.componenthouse.com/article-19

Hinterlasse eine Antwort

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *

*

Du kannst folgende HTML-Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>