Zadaniem asynchronicznego analityka jest załadowanie bardziej intensywnego skryptu, który sprawdza przeglądarkę użytkownika pod kątem wszelkich informacji umożliwiających ich identyfikację, aby mógł on zgłosić się do serwera analitycznego. Ponieważ jednak wszystkie te dane analityczne nie mają decydującego znaczenia dla użyteczności strony, Google chce ją uruchomić w wygody przeglądarki.
Teoretycznie mogą doradzić programistowi dodanie asynchronicznego fragmentu na samym dole strony, jako ostatniego elementu ciała. Jednak, aby umożliwić programistom przechwytywanie zdarzeń interfejsu użytkownika, które mają być wysyłane do analiz, chcą one wcześnie wprowadzić zmienną _gaq
. Na przykład możesz mieć przycisk: <button onclick="_gaq.push(...)">Track</button>
. Dzięki wczesnemu udostępnieniu _gaq
, mały fragment kodu w asynchronicznym fragmencie będzie umieszczał te wiadomości w kolejce, a cięższy ga.js
wyśle je później na serwer.
Teraz niektóre implementation details: ga.js
jest ładowany poprzez dodanie nowego <script>
element do głowy dokumentu z ustawionym atrybutem async
. IE i WebKit będą asynchronicznie ładować znaczniki <script>
wstawione ze skryptów. Firefox i Opera honorują atrybut async
, a także ładują skrypt asynchronicznie. Tak czy inaczej, ga.js
jest ładowane asynchronicznie, w wygody przeglądarki.
Wreszcie, po wykonaniu , bez blokowania renderowania strony z powodu asynchronicznego ładowania, może wykonać ciężką pracę polegającą na zebraniu wszystkich danych użytkownika i wszelkich wiadomości w kolejce _gaq
i wysłaniu ich na serwer.
Podsumowanie: Podejście to wykorzystuje niewielki wbudowany skrypt, który inicjuje kilka kluczowych zmiennych jak _gaq
że strona może mieć dostęp przed pełnym ga.js
skrypt jest gotowy. Ten mały skrypt dynamicznie dodaje do dokumentu znacznik <script src="ga.js">
w taki sposób, że większość przeglądarek pobierze je i wykona asynchronicznie, bez blokowania renderowania strony lub oceny krytycznych skryptów.
I rzeczywiście przegłosowałem tę odpowiedź początkowo, ale po przeczytaniu i ponownym przeczytaniu jej ponownie ma sens ... to była część, która wyzwoliła dla mnie żarówkę ... "Wreszcie, po uruchomieniu ga.js, bez blokowania renderowanie strony z powodu asynchronicznego ładowania, może wykonać ciężką pracę polegającą na zebraniu wszystkich danych użytkownika i wszelkich wiadomości w kolejce _gaq i wysłaniu ich na serwer "... więc w zasadzie, jeśli umieścisz skrypty w na dole strony, mówisz do google, że nie masz nic przeciwko ładowaniu skryptów PO strony, więc używaj analityki przed nimi! – concept47