2012-03-01 11 views
8

Sono confuso su dove collocare le funzioni JavaScript:Dove posizionare le funzioni JavaScript: <head>? <body>? oppure, dopo il</html>?

Quando dovrebbero essere messi all'interno della testa Quando in linea all'interno del corpo E, quando, dopo il tag di chiusura html?

grazie

+1

Duplicato di http://stackoverflow.com/questions/196702/where-to-place-javascript-in-a-html-file – jacktheripper

+0

Ho visto questa domanda diverse volte, ma non ricordo mai vedere "dopo" "" come opzione. – Brandon

+0

L'ho posizionato subito dopo il tag di chiusura del corpo –

risposta

9

Le regole sono tira e molla su questo, non v'è alcun modo giusto o sbagliato solo una migliore e meno meglio. (Ben dopo la </html>è sbagliato)

In generale, javascript nel head del documento potrebbe bloccare il rendering della pagina fino a quando il file viene caricato in alcuni browser * cough * * cough * IE. Ciò è dovuto al limite delle connessioni simultanee. Quindi alcune persone li hanno immessi nel prima del tag di chiusura html. Puoi utilizzare una libreria per caricare in modo asincrono il javascript per evitare questo blocco.

Se si sta utilizzando una libreria o si verifica il caricamento del DOM prima di eseguire il codice, non c'è davvero alcun problema su dove è posizionato. Tuttavia, se non lo fai, probabilmente è meglio metterlo alla fine.

+0

Non so chi ha downvoted, ma ho svitato per annullarlo perché sono d'accordo con te generalmente – soniiic

+0

grazie @soniic ... con una domanda così generica come non rispondere generalmente ... – JKirchartz

+0

Quindi, per riassumere le 3 risposte finora: Va bene mettere javascript all'interno di head & head, e all'interno di body e/body. Ho avuto alcuni dei miei dopo/html. Yikes. –

1

Javascript può sempre essere posizionato in modo sicuro nella testa per rendere la funzionalità disponibile per l'intera pagina. Nota che questo può bloccare il caricamento del resto del documento, quindi se stai caricando un Javascript molto grande o esterno, potresti voler caricarlo in linea vicino alla fine del corpo.

Javascript inserito diventa disponibile quando eseguito. Ciò consente di caricare condizionalmente JS quando vengono caricati gli elementi della pagina.

Javascript deve essere sempre inserito nello <head> o <body>, mai dopo lo </html>.

1

Sono d'accordo, mai visto (e non potrei raccomandare) dopo html. Inoltre, come notato, il blocco è la preoccupazione. Quello che vado spesso è un riferimento di script in testa a yepnope (un caricatore js async e test tid bit (ora incluso con modernizr)) e un piccolo blocco di js in linea alla fine del tag body che carica un j di bootstrap file.

In questo file, utilizzo un'altra richiesta di yepnope per caricare altre risorse necessarie in modo asincrono e avviare i metodi di inizializzazione.

Ho anche iniziato a inserire il mio codice di Google Analytics in un blocco di yepnope finale, in modo che sia l'ultima cosa da caricare, anche dopo l'avvio dell'applicazione js.