Risposte:
Modifica : dal 16 novembre 2011, la _trackPageLoadTime
funzione è stata deprecata e la sua funzionalità è stata impostata come impostazione predefinita . (Funzionalmente parlando, è passato dall'essere una funzione di opt-in a una funzione di opt-out.)
_setSiteSpeedSampleRate
è la nuova funzione per impostare la frequenza di campionamento su questa funzione; il suo valore predefinito è 1
(come nell'1%). Per disattivare questa funzione della velocità del sito, è necessario passare 0
a questa funzione:
_gaq.push(["_setSiteSpeedSampleRate", 0]);
Dal Centro assistenza di Google Analytics :
Questo rapporto attualmente supporta i seguenti browser: Chrome, Internet Explorer 9 e versioni precedenti di Internet Explorer con Google Toolbar installata. Più specificamente, i rapporti sulla velocità del sito richiedono browser che supportino l'interfaccia di navigazione HTML5 o che abbiano installato la barra degli strumenti di Google Internet Explorer
Quindi, non implementa il proprio timer, come molte precedenti soluzioni di homeback, per capire quanto tempo ci vuole per caricare una pagina. Utilizza invece una nuova funzionalità HTML5, attualmente supportata solo nei casi sopra elencati, chiamata NavigationTiming.
EDIT : ora è supportato in Firefox 7
(È importante notare che non viene eseguito a ogni caricamento; invece, attualmente campiona circa il 2% delle visualizzazioni di pagina, sebbene sia configurato per provare a tenere traccia di tutti i caricamenti di pagina nel 10% delle visite; poiché più browser supportano l'API NavigationTiming, puoi aspettarti che la percentuale campionata totale inizi ad avvicinarsi al 10%.)
A questa interfaccia si accede dall'oggetto DOM window.performance
(o, nelle versioni precedenti di Chrome, window.webkitPerformance
), utilizzando l' timing
attributo (so, window.performance.timing
). L'oggetto memorizza i valori misurati di tutti i tempi dell'evento di caricamento della pagina chiave e Google Analytics sottrae 2 dei valori esterni più importanti per giudicare la velocità di caricamento della pagina.
Per un carico di Mashable.com senza cache, ecco un esempio di ciò che misura (in Chrome 11):
timing = {
connectEnd: 1306677079337,
connectStart: 1306677079337,
domComplete: 1306677083482,
domContentLoadedEventEnd: 1306677081765,
domContentLoadedEventStart: 1306677081576,
domInteractive: 1306677081576,
domLoading: 1306677079478,
domainLookupEnd: 1306677079337,
domainLookupStart: 1306677079337,
fetchStart: 1306677079337,
loadEventEnd: 1306677083483,
loadEventStart: 1306677083482,
navigationStart: 1306677079337,
redirectEnd: 0,
redirectStart: 0,
requestStart: 1306677079394,
responseEnd: 1306677079669,
responseStart: 1306677079476,
secureConnectionStart: 0,
unloadEventEnd: 0,
unloadEventStart: 0
}
Quei numeri sono millisecondi dell'epoca, o millisecondi dal 1 gennaio 1970. Non ho visto alcuna documentazione su quali valori sottraggono per generare i loro valori, ma da un'ispezione superficiale del ga.js , sembra che sia loadEventStart-fetchStart
:
h&&h[c]!=k&&h.isValidLoadTime?b=h[c]:e&&e[a]&&(b=e[a].loadEventStart-e[a].fetchStart);
Per l'esempio precedente, ciò significa che registrerebbe 4,14 secondi nella _trackPageLoadTime
chiamata.
Se la nuova risorsa deve essere recuperata utilizzando HTTP GET o equivalente, fetchStart deve restituire l'ora immediatamente prima che il programma utente inizi a controllare qualsiasi cache dell'applicazione pertinente. Altrimenti, deve restituire l'ora in cui l'agente utente inizia a recuperare la risorsa.
Questo attributo deve restituire l'ora immediatamente prima dell'attivazione dell'evento di caricamento del documento corrente. Deve restituire zero quando l'evento di caricamento non è ancora stato attivato.
Per i curiosi, l'ordine sembra essere il seguente:
connectStart, connectEnd, domainLookupStart, domainLookupEnd, fetchStart, navigationStart, requestStart, responseStart, domLoading, responseEnd, domContentLoadedEventStart, domInteractive, domContentLoadedEventEnd, domComplete, loadEventStart, loadEventEnd
Per i valori 0 elencati:
unloadEventStart
e unloadEventStart
mostra i tempi di scaricamento del caricamento della pagina precedente (ma solo se quella pagina ha la stessa origine di quella corrente).
redirectEnd
e redirectStart
misurare la latenza aggiunta se c'era un reindirizzamento HTTP nella catena di caricamento della pagina.
secureConnectionStart
sembra essere una misura opzionale per misurare il tempo di connessione SSL.
secureConnectionStart
è una misurazione standard, ma è facoltativa per il browser (o qualunque cosa gestisca il contenuto) da segnalare. w3c-test.org/webperf/specs/NavigationTiming/…
_trackPageLoadTime
su una coda, quindi attiva tutte le funzioni in quella coda in sequenza una volta che ga.js è stato caricato. Ti consente di caricare inga.js
modo sicuro in modo asincrono.