2010-09-12 9 views
10

Esiste un motivo per mettere google analytics in testa e non alla fine del corpo? (I lavorare su grande sito web che le sue opere in questo modo)C'è un motivo per mettere google analytics in testa e non nel corpo?

Opzione 1:

<head> 
<script src="http://www.google-analytics.com/ga.js"></script> 
</head> 

Opzione 2 - in fondo del corpo:

<body> 
//html code 

<script src="http://www.google-analytics.com/ga.js"></script> 
</body> 

Edit1: Anche la stessa domanda con jquery ui

Edit2: aggiungere ga.js alla fine dello script (fix)

Grazie

+0

Vedere [ codice Google Analytics: può andare prima nel documento? ] (http://stackoverflow.com/questions/1708771/) e [ Google Analytics fa un notevole effetto in tempo per scaricare una pagina Web statica? ] (http://stackoverflow.com/questions/374084/). La linea di fondo è che Google consiglia di metterlo alla fine del corpo in modo che non bloccherà il resto della pagina. Ma va bene metterlo in testa. Inoltre, GA ora ha la versione asincrona (vedi [questa domanda] (http://stackoverflow.com/questions/2191325/)), che ti consente di inserire il codice GA in precedenza e di caricarlo in parallelo nei browser moderni. –

risposta

6

Suggerisco di utilizzare il codice di analisi google asincrono.

Asynchronous Google Analytics

Se si utilizza il codice non-asincrono e metterlo nella sezione head, si può bloccare il carico del tuo sito web se il codice ga sarebbe lento a caricare, perché attende che gli script sono caricato. E poiché google analytics è uno script esterno, potresti non avere alcuna influenza sulle prestazioni del carico (normalmente non dovrebbe avere importanza, ma può capitare che anche Google abbia problemi con il server).

Quindi, no, non vedo un vero motivo per farlo in quel modo.

+0

1. soo devo mettere in questo caso: http://www.google-analytics.com/ga.jsin head? 2. In che modo il browser sa gestire asyn = true? Grazie – Yosef

+0

Il suo uso in questo modo come nell'articolo – Yosef

+0

Ciao, il async = true è un attributo HTML5. Il trucco con il non bloccare il sito web durante il caricamento del javascript è dovuto alla creazione dinamica del tag script. – enricog

2

Non v'è alcuna buona ragione per farlo. Google stessa consiglia di inserire il tag nella parte inferiore del corpo per evitare di caricarlo in anticipo e rallentare il caricamento della pagina.

Probabilmente è stato fatto in quel modo perché qualcuno è abituato a inserire i tag <script> nell'intestazione.

+0

No, altri ls tranne ui + jquery nel corpo – Yosef

+2

Questo non è più vero. Quando si utilizza il nuovo codice asincrono, Google consiglia di inserirlo nella parte inferiore di '', subito prima del tag di apertura ''. – Yahel

0

Si consiglia di inserire tali script nel modo più semplice possibile in html per motivi di prestazioni. Gli script che devono essere caricati interrompono altri download nel browser. Suggerisco di dare un'occhiata a questo articolo: Best Practices for Speeding Up Your Web Site.

+0

Lo so, perché rispondo. Il sito web è costruito con buone esportazioni, quindi conosco l'articolo. Dovrebbe esserci un motivo per cui hanno inserito l'intestazione perché la maggior parte di js nel corpo. – Yosef

30

Incorporare il codice ga.js nel modo in cui descrivi (con un tag <script> hardcoded) è effettivamente bloccante, e se si carica lo script in questo modo, si considera che la best practice lo stia caricando appena prima del tag </body> . Ma questa non è la pratica raccomandata se stai usando il nuovo codice asincrono. Google explicitly recommends placing the new asynchronous code in the <head>.

Il nuovo codice asincrono non è bloccante in due modi. Innanzitutto, accoda le variabili per la pagina in una variabile _gaq globale. In questo modo, i dati vengono preparati in entrambi i modi.

Quindi, come descritto in questo SO answer, utilizzando JavaScript direttamente per scrivere lo script come il nuovo codice asincrono non è bloccante (questo metodo iniezione diretta è il modo per raggiungere asincrono-ness, anche nei browser che don' t osservare direttamente l'attributo async). Il resto del sito può continuare a caricarsi se per qualche motivo i server di Google sono in ritardo o lenti a rispondere. E questo è solo se l'utente non ha già ga.js in cache, come fanno molti, dal momento che ga.js è usato su molti, molti siti web popolari.

Il vantaggio di tutto questo è che prima si carica ga.js ed è in grado di trasmettere l'oggetto _gaq a Google, più è probabile che tu debba acquisire TUTTI i tuoi dati potenziali, come i dati degli utenti chi clicca molto velocemente sulla tua pagina. Ciò è particolarmente importante per i siti web "grandi" che tendono ad avere molti utenti regolari che seguono abitudini di clic rapido.

Se sei scettico, testarlo utilizzando un ispettore di caricamento della pagina come gli strumenti di sviluppo del webkit. L'ho testato estensivamente e non ho trovato prove di un blocco significativo quando si utilizza il codice asincrono nel </head> come descritto.

+0

grazie mille per una buona spiegazione – Yosef

Problemi correlati