2010-11-05 17 views
10

Fammi capire bene. Secondo le migliori pratiche dovremmo inizializzare jQuery nella parte inferiore della pagina. Se lo facciamo, qualsiasi riferimento all'oggetto jQuery (ad esempio $ o jQuery) sopra il riferimento sarà un valore nullo. Tuttavia, come per $(document).ready(), il motivo per cui questa funzione jQuery è sempre necessaria è quando si desidera ritardare un'esecuzione di una funzione dopo che la pagina è stata caricata. Questo sembra essere un conflitto.

Come utilizzare la funzionalità di $(document).ready() nella parte superiore della pagina e ancora riferimento a jQuery nella parte inferiore della pagina? Penso che jQuery debba essere inizializzato nella parte superiore della pagina proprio per questo motivo.

+0

Hai ragione. Devi mettere il tuo riferimento jQuery iniziale prima di usare $, quindi se usi $ nella parte superiore della pagina, è qui che devi fare riferimento alla libreria. – willoller

+0

Sì, l'avviso di efficienza è in realtà di avere tutto il javascript nella parte inferiore della pagina. Puoi ancora avere l'inizializzazione jQuery come la parte superiore di questo javascript e usare $ (function() {...}); DOPO quello –

+0

La cosa che mi infastidisce è Telerik Il framework MVC deve fare riferimento al suo javascript e ai suoi framework dipendenti (es: jquery) nella parte inferiore della pagina perché i loro controlli funzionino correttamente. Ho deciso di utilizzare window.onload() per ora. – burnt1ce

risposta

1

Basta inserire $(document).ready qui sotto per inizializzare jQuery indipendentemente da dove si trova.

In realtà però dovresti mettere tutto il tuo JS in basso, anche $(document).ready.

+3

Non è molto facile da fare quando si ' ri scrivendo i comandi. – burnt1ce

+2

Beh, non l'hai menzionato nella domanda iniziale: P. – Loktar

3

Se avete intenzione di mettere i vostri script in fondo alla pagina per scopi di efficienza, e non ci sono altri elementi (oltre </body> and </html>) non avrete nemmeno bisogno di usare $(document).ready(...);.

Posizionare il codice nella parte superiore della pagina ha senso semanticamente e il tempo di caricamento "risparmio" è trascurabile nella maggior parte dei casi. Fa davvero la differenza quando gli script sono enormi, o quando gli script si trovano su un altro server che può o meno essere attivo.

Se si sta collegando in diretta jQuery, suggerirei di inserirlo nella parte inferiore della pagina. Se stai collegando localmente jQuery, la parte superiore dovrebbe andare bene. Assicurati di utilizzare un codice ridotto al minimo.

+1

Aspetta .. cosa? Avevo l'impressione che document.ready fosse un po 'più robusto del codice che si attaccava alla fine del tag del corpo. –

+1

@SkippyChalmers, 'document.ready' è più robusto di' body.onload', ma * entrambi * sono eventi che vengono generati quando il DOM ha finito di analizzare/eseguire elementi sulla pagina. Se metti uno script alla fine della pagina, avrai essenzialmente fatto la stessa cosa. L'unica differenza sarà che tutti gli script saranno stati eseguiti prima del caricamento del callback, che potrebbe essere importante se il codice di esecuzione si basa su una libreria che non è stata caricata. – zzzzBov

Problemi correlati