jQuery-performance .css oder addClass
Ich habe eine große jQuery-code, und ich denke auch an die Schnelligkeit meiner Funktionen. Wenn ein element geklickt wird (mousedown) ich brauche die Zuordnung eines Bildes als hintergrund. Ich kann dies tun, indem Sie 2 Möglichkeiten:
$('#element li.class').css({"background":"someimageURL"});
oder
$('#element li.class').addClass("someclass");
wo "someclass" haben die eigentlichen CSS-Hintergrundbild.
Hexe-Funktion arbeitet in diesem Fall besser.
Gibt es eine Möglichkeit zum testen der verschiedenen Funktionen ist mit der Geschwindigkeit?
Danke
- Ich glaube nicht, dass es klug, ein Ersatz für den anderen. Mit .css-Methode Festplatte codes der Stil auf das DOM-element und, sofern Sie möchten, sich mit dem Stil (zB. Bildschirm Auflösung ändert), wäre es echt schwierig. Aber .addClass und .removeClass Methoden behandeln, die Sie ziemlich gut.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich bin fast sicher
.addClass()
wäre der schnellere der beiden ist. Dies beinhaltet im wesentlichen Riegeln auf einem anderen classname das element, in der Erwägung, dass die alternative würde erfordern, Durchlaufen die Elemente, Stile und Einstellung viele explizite Regeln.Einstellung ein paar css-Regeln über
$.css()
ist wahrscheinlich nichts zu befürchten, aber wenn Sie finden, sich, viele, oft, es ist Zeit, um eine Klasse erstellen und anwenden/entfernen, wie gebraucht.Habe ich extrahiert die Logik beider Methoden in einer einzigen Ort, an dem Sie Lesen, wenn Sie mögen.
http://pastie.org/842738
Klasse hinzufügen ist absolut schneller finden Sie in diesem performance-test von
$.addClass()
vs$.css()
vs$.removeClass().addClass()
vs plain, js - http://jsperf.com/jquery-css-vs-addclass-speed/2