Il primo è il più veloce, semplicemente perché ha solo 1 proprietà da cercare. Tuttavia,
document.getElementById("MyElement")
è anche più veloce. È javascript nativo e, a differenza di jQuery, il browser sa immediatamente cosa vuoi fare, invece di dover eseguire un carico di codice jQuery per capire che cosa stai cercando, in primo luogo.
È possibile utilizzare jsPerf per eseguire un test di velocità, per confrontare le funzioni: Test Case. Risultati:
$('#MyElement')
Ops/sec: 967,509
92% slower
$('#Mytbl #MyElement')
Ops/sec: 83,837
99% slower
$('#Mytbl .MyClass')
Ops/sec: 49,413
100% slower
document.getElementById("MyElement")
Ops/sec: 10,857,632
fastest
Come previsto, il getter nativo è il più veloce, seguito dal getter jQuery con solo 1 selettore a meno del 10% della velocità nativa. I getter jQuery con 2 parametri non si avvicinano nemmeno alle operazioni al secondo del codice nativo, in particolare il selettore di classe, poiché le classi sono generalmente applicate a più elementi, rispetto agli ID. (Selettori di ID nativi si fermano alla ricerca dopo che hanno trovato un elemento, non sono sicuro se jQuery fa, anche.)
Non sapevo di jsperf.com; grazie per questo :) –
Prego, è una * vera * buona risorsa! Aiuta molto quando si tratta di ottenere le migliori prestazioni dal tuo codice, ma questo dovrebbe essere tenuto nella tua mente fino a quando le prestazioni non diventano un problema, o quando sei alle ultime fasi di sviluppo. – ahren
e non sapevo che jsperf potesse testare le prestazioni usando DOM o.o – ajax333221