Antworten:
Bearbeiten : Ab dem 16. November 2011 ist die _trackPageLoadTime
Funktion veraltet und ihre Funktionalität wurde als Standardeinstellung festgelegt . (Funktionell hat es sich von einer Opt-In-Funktion zu einer Opt-Out-Funktion entwickelt.)
_setSiteSpeedSampleRate
ist die neue Funktion zum Einstellen der Abtastrate für diese Funktion. Der Standardwert ist 1
(wie in 1%). Um die Verwendung der Site Speed-Funktion zu deaktivieren, müssen Sie ein 0
an diese Funktion übergeben:
_gaq.push(["_setSiteSpeedSampleRate", 0]);
In der Google Analytics-Hilfe :
Dieser Bericht unterstützt derzeit die folgenden Browser: Chrome, Internet Explorer 9 und frühere Versionen von Internet Explorer mit installierter Google Toolbar. Insbesondere erfordern die Site Speed-Berichte Browser, die die HTML5 NavigationTiming-Oberfläche unterstützen oder die Google Internet Explorer-Symbolleiste installiert haben
Es implementiert also keinen eigenen Timer, wie es viele frühere Homeback-Lösungen getan haben, um herauszufinden, wie lange das Laden einer Seite dauert. Stattdessen wird eine neue HTML5-Funktion namens NavigationTiming verwendet, die derzeit nur in den oben aufgeführten Fällen unterstützt wird.
BEARBEITEN : Dies wird jetzt in Firefox 7 unterstützt
(Es ist wichtig zu beachten, dass es nicht bei jedem Ladevorgang ausgeführt wird. Stattdessen werden derzeit etwa 2% der Seitenaufrufe abgetastet. Es ist jedoch so konfiguriert, dass versucht wird , alle Seitenladevorgänge bei 10% der Besuche zu verfolgen. Da mehr Browser die NavigationTiming-API unterstützen, Sie können davon ausgehen, dass sich der Prozentsatz der Gesamtstichprobe allmählich 10% nähert.)
Auf diese Schnittstelle wird unter dem DOM-Objekt window.performance
(oder in früheren Versionen von Chrome window.webkitPerformance
) mit dem timing
Attribut (so, window.performance.timing
) zugegriffen . Das Objekt speichert Messwerte aller wichtigen Ereigniszeiten für das Laden von Seiten, und Google Analytics subtrahiert zwei der wichtigeren äußeren Werte, um die Geschwindigkeit beim Laden von Seiten zu beurteilen.
Für eine Ladung von Mashable.com ohne Cache ist hier ein Beispiel, was es misst (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
}
Diese Zahlen sind Epochen-Millisekunden oder Millisekunden seit dem 1. Januar 1970. Ich habe keine Dokumentation darüber gesehen, welche Werte sie subtrahieren, um ihre Werte zu generieren, aber bei einer flüchtigen Betrachtung der ga.js sieht es so aus loadEventStart-fetchStart
:
h&&h[c]!=k&&h.isValidLoadTime?b=h[c]:e&&e[a]&&(b=e[a].loadEventStart-e[a].fetchStart);
Für das obige Beispiel bedeutet dies, dass 4,14 Sekunden im _trackPageLoadTime
Anruf aufgezeichnet werden .
Wenn die neue Ressource mit HTTP GET oder einem gleichwertigen Element abgerufen werden soll, muss fetchStart die Zeit zurückgeben, bevor der Benutzeragent mit der Überprüfung aller relevanten Anwendungscaches beginnt. Andernfalls muss die Zeit zurückgegeben werden, zu der der Benutzeragent mit dem Abrufen der Ressource beginnt.
Dieses Attribut muss die Zeit unmittelbar vor dem Auslösen des Ladeereignisses des aktuellen Dokuments zurückgeben. Es muss Null zurückgeben, wenn das Ladeereignis noch nicht ausgelöst wurde.
Für Neugierige scheint die Reihenfolge wie folgt zu sein:
connectStart, connectEnd, domainLookupStart, domainLookupEnd, fetchStart, navigationStart, requestStart, responseStart, domLoading, responseEnd, domContentLoadedEventStart, domInteractive, domContentLoadedEventEnd, domComplete, loadEventStart, loadEventEnd
Für die 0 aufgelisteten Werte:
unloadEventStart
und unloadEventStart
zeigen Sie die Zeiten für das Entladen der vorherigen Seite an (jedoch nur, wenn diese Seite denselben Ursprung wie die aktuelle hat.)
redirectEnd
und redirectStart
messen Sie die hinzugefügte Latenz, wenn in der Seitenladekette eine HTTP-Umleitung vorhanden war.
secureConnectionStart
scheint eine optionale Messung zur Messung der SSL-Verbindungszeit zu sein.
secureConnectionStart
ist eine Standardmessung, die der Browser (oder was auch immer den Inhalt verarbeitet) optional melden kann. w3c-test.org/webperf/specs/NavigationTiming/…
_trackPageLoadTime
in eine Warteschlange ein und lösen Sie dann alle Funktionen in dieser Warteschlange nacheinander aus, sobald ga.js geladen wurde. Damit können Sie sicherga.js
asynchron laden .