Comment fonctionne le Google Analytique Site vitesse caractéristique, `` , tricoter ? Y a-t-il une documentation sur comment ça marche ?
Réponse
Trop de publicités?Edit: à compter du 16 novembre, l' _trackPageLoadTime
fonction est obsolète et sa fonctionnalité a été défini comme un paramètre par défaut. (Fonctionnellement parlant, il est passé d'une fonctionnalité d'inscription à une option de blocage.)
_setSiteSpeedSampleRate
est la nouvelle fonction de réglage de la fréquence d'échantillonnage sur cette fonction; sa valeur par défaut est 1
(1%). Pour retirer de l'utilisation de ce Site Vitesse fonctionnalité, vous devez passer un 0
de cette fonction:
_gaq.push(["_setSiteSpeedSampleRate", 0]);
À partir du Centre d'Aide Google Analytics:
Ce rapport prend actuellement en charge les navigateurs suivants: google Chrome, Internet Explorer 9 et les versions précédentes de Internet Explorer avec Google Barre d'outils est installé. Plus précisément, le Site de la Vitesse rapports nécessitent les navigateurs qui prennent en charge le HTML5 NavigationTiming interface ou ont l' Google barre d'outils Internet Explorer installé
Donc, il n'est pas de mettre en œuvre son propre chronomètre, comme beaucoup avant homeback solutions, afin de déterminer combien de temps il prend une page à charger. Au lieu de cela, il utilise une nouvelle fonctionnalité HTML5, actuellement pris en charge uniquement dans le cas ci-dessus listés, appelé NavigationTiming.
EDIT: C'est maintenant pris en charge par Firefox 7
(Il est Important de noter qu'il ne fonctionne pas sur tous les charger; au lieu de cela, il actuellement des échantillons d'environ 2% de pages vues, s'il est configuré pour essayer de suivre toutes les chargement de la page, sur 10% des visites; comme de plus en plus des navigateurs prennent en charge la NavigationTiming API, vous pouvez vous attendre le total des pourcentages d'un échantillon de commencer à se rapprocher de 10%.)
Cette interface est accessible sous l'objet DOM window.performance
(ou, dans les versions antérieures de Chrome, window.webkitPerformance
), à l'aide de l' timing
d'attribut (donc, window.performance.timing
). L'objet stocke les valeurs mesurées pour l'ensemble de la touche de chargement de la page de l'événement époque, et Google Analytics soustrait 2 de la plus importante externe des valeurs de juge de la vitesse de chargement des pages.
Pour une charge de Mashable.com sans cache, voici un exemple de ce qu'il mesure (dans 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
}
Ces chiffres sont époque millisecondes, ou le nombre de millisecondes depuis le 1er janvier 1970. Je n'ai pas vu toute la documentation que pour les valeurs qu'ils soustraire à générer de leurs valeurs, mais à partir d'une inspection superficielle de la ga.jsil ressemble, c'est - loadEventStart-fetchStart
:
h&&h[c]!=k&&h.isValidLoadTime?b=h[c]:e&&e[a]&&(b=e[a].loadEventStart-e[a].fetchStart);
Pour l'exemple ci-dessus, cela signifie qu'il serait d'enregistrer les 4.14 secondes dans l' _trackPageLoadTime
appel.
À partir du W3C temps de Navigation spec:
Si la nouvelle une ressource est d'être récupérée à l'aide de HTTP OBTENIR ou équivalent, fetchStart doit de retour au moment immédiatement avant le utilisateur agent commence à la vérification de tous les pertinentes de l'application des caches. Sinon, il doit retourner le temps lorsque l'utilisateur agent commence à chercher de la ressource.
Cette attribut doit retourner le temps immédiatement avant l'événement load de le document actuel est déclenché. Il doit retourner à zéro lors de l'événement de chargement n'est pas encore tiré.
Pour les curieux parties, la commande semble être comme suit:
connectStart, connectEnd, domainLookupStart, domainLookupEnd, fetchStart, navigationStart, requestStart, responseStart, domLoading, responseEnd, domContentLoadedEventStart, domInteractive, domContentLoadedEventEnd, domComplete, loadEventStart, loadEventEnd
Pour les valeurs à 0 répertoriés:
unloadEventStart
et unloadEventStart
montrer à la fois pour la page précédente de la charge du déchargement (mais seulement si la page a la même origine que la précédente.)
redirectEnd
et redirectStart
mesurer la latence ajoutée si il y avait une redirection HTTP dans le chargement de la page de chaîne.
secureConnectionStart
semble être une option de mesure pour la mesure de la connexion SSL temps.