2010-09-12 6 views
10

Gibt es Grund, Google Analytics in den Kopf und nicht in das Ende des Körpers zu setzen? (I auf große Website arbeiten, daß ihre Werke auf diese Weise)Gibt es einen Grund, Google Analytics in den Kopf und nicht in den Körper zu setzen?

Option 1:

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

Option 2 - im unteren Teil des Körpers:

<body> 
//html code 

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

Edit1: Auch die gleiche Frage mit jquery ui

Edit2: ga.js am Ende des Skripts (fix)

Dank

+0

Siehe [ Google Analytics-Code: Kann es vorher in das Dokument gehen? ] (http://stackoverflow.com/questions/1708771/) und [ ] hat Google Analytics einen großen Einfluss auf die Zeit, um eine statische Webseite herunterzuladen? ] (http://stackoverflow.com/questions/374084/). Im Endeffekt empfiehlt Google, es am Ende des Textes zu platzieren, damit der Rest der Seite nicht blockiert wird. Aber es ist in Ordnung, es in den Kopf zu setzen. Außerdem hat GA nun eine asynchrone Version (siehe [diese Frage] (http://stackoverflow.com/questions/2191325/)), mit der Sie den GA-Code früher in modernen Browsern parallel laden können. –

Antwort

6

Ich schlage vor, den asynchronen Google Analytics-Code zu verwenden.

Asynchronous Google Analytics

Wenn Sie den nicht-asynchronen Code verwenden und in den Kopfteil setzen, kann es die Last Ihrer Website sperren, wenn der GA-Code wäre langsam zu laden, weil es wartet, bis die Skripte sind geladen. Und da Google Analytics ein externes Skript ist, haben Sie möglicherweise keinen Einfluss auf die Ladeperformance (normalerweise sollte dies keine Rolle spielen, aber es kann vorkommen, dass Google auch Serverprobleme hat).

Also, nein ich sehe keinen wirklichen Grund, es so zu machen.

+0

1. Soo muss ich in diesem Fall setzen: http://www.google-analytics.com/ga.jsin Kopf? 2. Wie Browser wissen, dass asyn = true? Danke – Yosef

+0

Seine Verwendung auf diese Weise wie in Artikel – Yosef

+0

Hallo, das async = true ist ein HTML5-Attribut. Der Trick, die Website beim Laden des Javascript nicht zu blockieren, liegt an der dynamischen Erstellung des Script-Tags. – enricog

2

hinzufügen Es gibt keinen guten Grund dafür. Google selbst empfiehlt, das Tag an den unteren Rand des Textkörpers zu setzen, um ein frühes Laden und ein langsameres Laden der Seite zu vermeiden.

Es wurde wahrscheinlich so gemacht, weil jemand gewohnt ist, <script> Tags in den Header zu setzen.

+0

Nein, andere ls außer ui + jquery im Körper – Yosef

+2

Dies ist nicht mehr wahr. Wenn Sie den neuen asynchronen Code verwenden, empfiehlt Google, ihn an der Unterseite des '' kurz vor dem Tag '' zu platzieren. – Yahel

0

Es wird empfohlen, solche Scripts aus Performance-Gründen so niedrig wie möglich im HTML zu setzen. Skripte, die geladen werden müssen, unterbrechen andere Downloads im Browser. Ich schlage vor, dass Sie einen Blick auf diesen Artikel werfen: Best Practices for Speeding Up Your Web Site.

+0

Ich weiß, dass, weil ich antworte. Die Website durch gute Exporte zu bauen, so, dass die Artikel wissen.So sollte ein Grund sein, dass sie in den Header setzen, weil die meisten von js in Körper. – Yosef

30

Einbetten den ga.js-Code so, wie Sie (mit einem fest codierten <script>-Tag) beschreiben, ist in der Tat blockiert, und wenn Sie das Skript so laden, ist die beste Praxis betrachtet es bei der kurz vor dem </body> Tag wird geladen . Dies ist jedoch nicht empfehlenswert, wenn Sie den neuen asynchronen Code verwenden. Google explicitly recommends placing the new asynchronous code in the <head>.

Der neue asynchrone Code ist auf zwei Arten nicht blockierend. Zuerst werden die Variablen für die Seite in einer globalen Variable _gaq in die Warteschlange gestellt. Auf diese Weise werden die Daten auf jede Art und Weise vorbereitet.

Dann, wie in diesem SO answer beschrieben, Javascript direkt zum Schreiben des Skripts wie im neuen Async-Code ist nicht blockierend (diese direkte inject-Methode ist die Möglichkeit, asynchrone-Ness, auch in Browsern, die nicht ' t das Attribut async direkt beobachten. Der Rest der Website kann weiterhin geladen werden, wenn die Server von Google aus irgendeinem Grund nicht oder nur langsam reagieren. Und das nur, wenn der Benutzer ga.js nicht bereits im Cache gespeichert hat, wie es viele tun, da ga.js auf vielen, vielen populären Webseiten verwendet wird.

Der Vorteil von all dem ist, dass je früher die ga.js lädt und in der Lage ist, das _gaq-Objekt an Google zu übertragen, desto wahrscheinlicher werden Sie ALLE Ihre potenziellen Daten wie die Daten der Benutzer erfassen die sehr schnell auf deine Seite klicken. Dies ist besonders wichtig für "große" Websites, die häufig viele normale Nutzer haben, die schnell klickende Gewohnheiten befolgen.

Wenn Sie skeptisch sind, testen Sie es mit einem Seitenlade-Inspektor wie den Webkit-Entwicklertools. Ich habe es ausgiebig getestet und fand keinen Hinweis auf signifikante Blockierung, wenn der Async-Code in </head> wie beschrieben verwendet wird.

+0

vielen Dank für die gute Erklärung – Yosef

Verwandte Themen