Das Beispiel in der Frage ist IMO nicht zu verwenden, nicht wegen der Leistungsbedenken, sondern weil die einfache JavaScript-Version wesentlich besser lesbar ist.
ähnlich td.cellIndex
und tr.rowIndex
sind viel besser lesbar (wie auch schneller) als die üblicherweise gegebenen Hacks wie $(this).parent().children().index(this)
und einfache Eigenschaften wie this.checked
sind IMO besser als $(this).is(':checked')
.
Innerhalb von jQuery sollten Sie lieber jQuery-Wrapper-Methoden als die Versionen verwenden, die in Nicht-Standard-Selektoren eingebettet sind.
$('#thing .thing').last()
kann schnell sein, weil die Wähler auf den schnellen Einbau-querySelectorAll
Anruf auf modernen Browser übergeben werden.
$('#thing .thing:last')
wird relativ langsam sein.
Achten Sie auch auf Selektor-String-slinging, die in der Regel eine schlechte Sache ist:
$('div.'+className)
wird so bald brechen, wie ein Klassenname mit einem Punkt gibt es (oder verschiedene andere Interpunktion) darin. Vermeiden Sie eine Selektorzeichenfolge, wenn es eine zuverlässigere Testmethode gibt.
Poll-Typ Frage: Community Wiki ? – mnemosyn
Ich stimme nicht mit * Weg * schneller überein. Dies geschieht einmal für 1 Klick, was ein Unterschied ist, den Sie buchstäblich * nicht * messen können. Es würde Zehntausende von Hunderttausenden von Iterationen benötigen, um hier einen messbaren Unterschied zu erzielen. Wenn es in einer Schleife war, dann ist es ein gültiger Punkt ... in Ihrem Beispiel ist es das jedoch nicht, zumindest vom Standpunkt der Leistung. –