102 votes

Comment fonctionne _gaq.push ([' _trackPageLoadTime ']) fonctionne ?

Comment fonctionne le Google Analytique Site vitesse caractéristique, `` , tricoter ? Y a-t-il une documentation sur comment ça marche ?

181voto

Yahel Points 21516

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:

fetchStart attribut

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.

loadEventStart attribut

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.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X