suit: Geschwindigkeit von CSS-Selektoren

Beitrag lesen

ich vertraue dem folgenden Mozilla Artikel: https://developer.mozilla.org/en/Writing_Efficient_CSS

Dort steht drin, dass CSS-Selektoren von rechts nach links abgearbeitet werden. dh. bei div#foo wird erst nach dem Element mit der ID foo gesucht und dann überprüft, ob es ein div ist. Da IDs per Definition einzigartig sind, reicht #foo vollkommen aus.

Klingt schlüssig - also sollte #foo schneller sein als div#foo

Wie jQuery bzw Sizzle das händelt ist mir leider unbekannt. Allerdings würde ich auch hier sagen, weniger ist mehr.

In jQuery sind Selektoren schneller wenn man man das Element vorne dranhängt - div#foo ist schneller als #foo) - dazu gibts massenhaft Benchmarks im netz.

Zu guter Letzt ist div#foo schlechter Stil.

Das ist mir klar - nur in puncto jQuery trifft das eben nicht zu - angenommen ich habe folgendes:

<div id="content">  
 <div id="foo">  
</div>  
<div id="sidebar">  
</div>

Dann ist jQuery mit dem Selektor div#content>div#foo wesentlich schneller als mit #foo.