Réponses:
Edit : Depuis le 16 novembre 2011, la _trackPageLoadTime
fonction a été abandonnée et sa fonctionnalité a été définie comme paramètre par défaut . (Sur le plan fonctionnel, il est passé d'une fonctionnalité opt-in à une fonctionnalité opt-out.)
_setSiteSpeedSampleRate
est la nouvelle fonction pour régler la fréquence d'échantillonnage sur cette fonction; sa valeur par défaut est 1
(comme dans 1%). Pour refuser d'utiliser cette fonction de vitesse du site, vous devez passer un 0
à cette fonction:
_gaq.push(["_setSiteSpeedSampleRate", 0]);
Depuis le centre d'aide Google Analytics :
Ce rapport prend actuellement en charge les navigateurs suivants: Chrome, Internet Explorer 9 et les versions précédentes d'Internet Explorer avec la barre d'outils Google installée. Plus précisément, les rapports sur la vitesse du site nécessitent des navigateurs prenant en charge l'interface HTML5 NavigationTiming ou la barre d'outils Google Internet Explorer installée
Ainsi, il n'implémente pas sa propre minuterie, comme de nombreuses solutions de retour à la maison précédentes, pour déterminer combien de temps il faut à une page pour se charger. Au lieu de cela, il utilise une nouvelle fonctionnalité HTML5, actuellement uniquement prise en charge dans les cas énumérés ci-dessus, appelée NavigationTiming.
ÉDITER : Ceci est maintenant pris en charge dans Firefox 7
(Il est important de noter qu'il ne s'exécute pas à chaque chargement; à la place, il échantillonne actuellement environ 2% des pages vues, bien qu'il soit configuré pour essayer de suivre tous les chargements de page sur 10% des visites; comme de plus en plus de navigateurs prennent en charge l'API NavigationTiming, vous pouvez vous attendre à ce que le pourcentage total échantillonné commence à 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 detiming
attribut (so, window.performance.timing
). L'objet stocke les valeurs mesurées de tous les temps d'événement de chargement de page clés et Google Analytics soustrait 2 des valeurs externes les plus importantes pour juger de la vitesse de chargement de la page.
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 nombres sont des millisecondes d'époque, ou des millisecondes depuis le 1er janvier 1970. Je n'ai vu aucune documentation sur les valeurs qu'ils soustraient pour générer leurs valeurs, mais d'une inspection rapide du ga.js , il semble que ce soit 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 enregistrerait 4,14 secondes dans l' _trackPageLoadTime
appel.
Si la nouvelle ressource doit être récupérée à l'aide de HTTP GET ou équivalent, fetchStart doit renvoyer l'heure juste avant que l'agent utilisateur ne commence à vérifier les caches d'application pertinents. Sinon, il doit renvoyer l'heure à laquelle l'agent utilisateur commence à récupérer la ressource.
Cet attribut doit renvoyer l'heure immédiatement avant le déclenchement de l'événement de chargement du document actuel. Il doit renvoyer zéro lorsque l'événement de chargement n'est pas encore déclenché.
Pour les curieux, la commande semble être la suivante:
connectStart, connectEnd, domainLookupStart, domainLookupEnd, fetchStart, navigationStart, requestStart, responseStart, domLoading, responseEnd, domContentLoadedEventStart, domInteractive, domContentLoadedEventEnd, domComplete, loadEventStart, loadEventEnd
Pour les 0 valeurs répertoriées:
unloadEventStart
et unloadEventStart
afficher les heures de déchargement du chargement de la page précédente (mais uniquement si cette page a la même origine que la page actuelle.)
redirectEnd
et redirectStart
mesurez la latence ajoutée s'il y avait une redirection HTTP dans la chaîne de chargement de la page.
secureConnectionStart
semble être une mesure facultative pour mesurer le temps de connexion SSL.
secureConnectionStart
est une mesure standard, mais elle est facultative pour le navigateur (ou tout ce qui gère le contenu) de rapporter. w3c-test.org/webperf/specs/NavigationTiming/…
_trackPageLoadTime
dans une file d'attente, puis lancez toutes les fonctions de cette file d'attente de manière séquentielle une fois que ga.js est chargé. Il vous permet de charger en toute sécurité de manièrega.js
asynchrone.