2010-09-12 8 views
10

Czy istnieje powód, aby umieścić google analytics w głowie, a nie na końcu ciała? (ja pracuje na dużym stronie internetowej, że produkt działa w ten sposób)Czy istnieje powód, aby umieścić google analytics w głowie, a nie w ciele?

Wariant 1:

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

Wariant 2 - w dolnej części ciała:

<body> 
//html code 

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

Edit1: To samo pytanie z użytkownikiem jquery ui

Edit2: dodać ga.js w końcu skryptu (fix)

Dzięki

+0

Zobacz [ kod Google Analytics: czy można go znaleźć w dokumencie? ] (http://stackoverflow.com/questions/1708771/) i [ ) czy analityka Google ma duży wpływ na czas, aby pobrać statyczną stronę internetową? ] (http://stackoverflow.com/questions/374084/). Najważniejsze jest to, że Google zaleca umieszczenie go na końcu ciała, aby nie blokowało ono reszty strony. Ale dobrze jest umieścić go w głowie. Ponadto GA ma teraz wersję asynchroniczną (zobacz [to pytanie] (http://stackoverflow.com/questions/2191325/)), która pozwala umieścić kod GA wcześniej i załadować go równolegle w nowoczesnych przeglądarkach. –

Odpowiedz

6

Proponuję użyć asynchronicznego kodu Google Analytics.

Asynchronous Google Analytics

Jeśli używasz kodu non-asynchroniczny i umieścić go w sekcji nagłówka, może zablokować obciążenie swojej stronie, jeśli kod ga byłoby wolno ładować, ponieważ czeka aż skrypty są załadowany. A ponieważ google analytics jest zewnętrznym skryptem, możesz nie mieć wpływu na wydajność ładowania (zwykle nie powinno to mieć znaczenia, ale może się zdarzyć, że nawet Google ma problemy z serwerem).

Nie, nie widzę prawdziwego powodu, aby zrobić to w ten sposób.

+0

1. Soo muszę w tym przypadku: http://www.google-analytics.com/ga.jsin head? 2. Jak przeglądarka radzi sobie z asyn = true? Dzięki – Yosef

+0

Jego użycie w ten sposób jak w artykule – Yosef

+0

Witaj, async = true to atrybut HTML5. Sztuczka polegająca na tym, że witryna nie jest blokowana podczas ładowania javascriptu, wynika z dynamicznego tworzenia tagu skryptu. – enricog

2

Nie ma dobrego powodu. Sam Google zaleca umieszczenie tagu na spodzie ciała, aby uniknąć wcześnie ładowania i spowolnienia ładowania strony.

To było prawdopodobnie zrobione w ten sposób, ponieważ ktoś jest używany do umieszczania tagów <script> w nagłówku.

+0

Nie, inne ls z wyjątkiem ui + jquery wewnątrz ciała – Yosef

+2

To już nie jest prawdą. Używając nowego asynchronicznego kodu, Google zaleca umieszczenie go na dole '', tuż przed otwierającym '' tagiem. – Yahel

0

Zaleca się umieszczanie takich zrzutów w języku html tak nisko, jak to możliwe, ze względu na wydajność. Skrypty, które trzeba załadować, przerywają inne pobrania w przeglądarce. Proponuję zapoznać się z tym artykułem: Best Practices for Speeding Up Your Web Site.

+0

Wiem to, ponieważ ja odpowiadam. Strona zbudowana przez dobry eksport, soo, które znają artykuł. Z jakiegoś powodu powinieneś umieścić nagłówek, ponieważ większość js w ciele. – Yosef

30

Osadzanie kodu ga.js w opisany sposób (z zakodowanym na stałe znacznikiem <script>) rzeczywiście blokuje, a jeśli ładujesz ten skrypt, najlepszą praktykę uważa się za ładowanie go tuż przed znacznikiem </body> . Ale to nie jest zalecana praktyka, jeśli używasz nowego asynchronicznego kodu. Google explicitly recommends placing the new asynchronous code in the <head>.

Nowy kod asynchoroniczny nie blokuje się na dwa sposoby. Najpierw umieszcza w kolejce zmienne strony w globalnej zmiennej _gaq. W ten sposób dane są przygotowywane w dowolny sposób.

Następnie, jak opisano w tej SO answer, używając javascript bezpośrednio do napisania skryptu, jak w nowym kodzie asynchronicznym, nie ma blokowania (ta metoda bezpośredniego wstrzykiwania jest drogą do osiągnięcia asynchroniczności, nawet w przeglądarkach, które nie obsługują t bezpośrednio obserwuj atrybut async). Reszta strony może nadal się ładować, jeśli z jakiegoś powodu serwery Google nie działają lub nie reagują zbyt wolno. I to tylko wtedy, gdy użytkownik nie ma już buforowanego pliku ga.js, jak to czyni wiele, ponieważ ga.js jest używany na wielu popularnych stronach internetowych.

Zaletą tego wszystkiego jest to, że im wcześniej GA.js ładuje się i jest w stanie przesłać obiekt _gaq do Google, tym większe prawdopodobieństwo, że uda Ci się przechwycić WSZYSTKIE Twoje potencjalne dane, takie jak dane użytkowników którzy bardzo szybko klikają na Twojej stronie. Jest to szczególnie ważne w przypadku "dużych" stron internetowych, które zwykle mają wielu zwykłych użytkowników, którzy przestrzegają nawyków szybkiego kliknięcia.

Jeśli jesteś sceptyczny, przetestuj go za pomocą inspektora ładowania strony, takiego jak narzędzia dla programistów webkit. Przetestowałem to obszernie i nie znalazłem żadnych dowodów znaczącego blokowania podczas korzystania z kodu asynchronicznego w </head> zgodnie z opisem.

+0

Dziękuję bardzo za dobre wyjaśnienie – Yosef

Powiązane problemy