2012-02-27 10 views
7

Prima di questo ho sempre utilizzato il selettore gt per selezionare tutti gli elementi tranne prima. Ora ho trovato una soluzione che mi sembra più elegante. È necessario utilizzare :not(:first) anziché :gt(0).
C'è qualche differenza nelle prestazioni di questi selettori e quale suggerisci di usare?: gt (0) vs: not (: first) vs .slice (1)

MODIFICA: Come già detto Felix King, .slice(1) è un'altra opzione per selezionare tutti gli elementi tranne prima. Quindi quale è più veloce?

+2

prova it.http: //jsperf.com/ – xdazz

+8

Potete anche provare '.slice (1)' al posto di un selettore personalizzato . –

+0

Sono entrambi lenti, il metodo suggerito da @FelixKling dovrebbe essere il più veloce. –

risposta

10

Tempo per un po 'di profilazione! Data una pagina vuota tranne dieci <span> s memorizzate nella cache in una variabile denominata spans e 10.000 iterazioni ottengo 824ms per spans.filter(':gt(0)') e 1276ms per spans.not(':first').

figura ottenuta utilizzando console.time() e console.timeEnd() in Firefox 11.

Considerando che dovevo fare 10k iterazioni di colpire nel segno 1sec mi suggeriscono che non importa?

+0

Ti piacerebbe aggiungere un confronto tra il metodo slice di @Felix Kling che alcuni commentatori suggeriscono è meglio? – Chris

+1

Sicuro! Usando il metodo 'slice (1)' lo stesso test si presenta come 79ms - circa 10 volte più veloce di ': gt (0)' –

+0

Ho pensato che: non: prima funzionava più velocemente, grazie per i test. E anche +1 per il confronto fetta (1). –