2012-03-07 3 views
6

Sappiamo tutti che è utile mettere in cache le chiamate al DOM, quindi invece di chiamare $ ('# someElement') più volte, salvalo su var $ someElement e usalo.

Ma è lo stesso quando si usa $ (this) all'interno di un listener di eventi, ad esempio? $ (questo) dovrebbe essere memorizzato nella cache?

Grazie.

+2

Sospetto che dipenda interamente da quale sia il modello di utilizzo per '$ (this)'. –

risposta

5

Ogni volta che si chiama o $(this)$(selector) si tratta di una chiamata di funzione per creare un nuovo oggetto jQuery ... Quindi, se avete già creato una volta, la memorizzazione nella cache salverà chiamando una funzione per creare nuovamente lo stesso oggetto

+0

Grazie, Charlie. – Francisc

2

Se si fa riferimento allo stesso elemento più avanti nella funzione evento, sì. Al di fuori della funzione non ha senso farlo perché il valore di this sarà cambiato.

+0

Grazie, Diodeus. – Francisc

7

Se si chiama $(this) più volte, è meglio fare qualcosa di simile var $this = $(this);

+0

Esiste un guadagno in termini di prestazioni o è solo per il salvataggio di caratteri (2 per utilizzo)? – Tx3

+0

@ Tx3 No, non è solo per il salvataggio di caratteri, ma per il salvataggio delle chiamate di funzione. Hai fatto call di funzione ogni volta che fai '$ (this)'. – xdazz

+0

certo, stavo solo pensando a che tipo di operazione sta facendo quando fa il "wrapping". Ad ogni modo, l'ho usato come mi hai suggerito, quindi era solo curiosità. – Tx3