<script type="text/javascript">//<![CDATA[
// jQuery has already been loaded but this could be equivalent to
// a function in <body onLoad="">
$(function(){
var iNavStart=performance.timing.navigationStart;
var iNavEnd=performance.timing.loadEventEnd;
var iPageLoad=iNavEnd-iNavStart;
console.dir({'iNavStart',iNavStart});
console.dir({'iNavEnd',iNavEnd});
console.dir({'iPageLoad',iPageLoad});
});
//]]</script>
Lorsque la page est chargée, la console révèle:
iNavStart: 1449594976150
iNavEnd: 0
iPageLoad: -1449594976150
Je m'attendais à ce que ce calcul me donne un beau nombre de millisecondes. Sûrement iNavEnd ne devrait pas être ?
Testé dans Chrome 47 et Firefox 42 (tous deux pris en charge performance.timing).
Des idées où je vais mal?
Je crois que Ionut Poparépond à cela sur Stackoverflow in Mesure du temps de chargement du site via un API :
Vous devez mesurer loadEventEnd à la fin de l'événement onload, sinon il sera signalé comme 0, comme cela ne s'est jamais produit. (exemple de requête pour l'attachement à l'événement onload)
$(window).load(function(){ setTimeout(function(){ window.performance = window.performance || window.mozPerformance || window.msPerformance || window.webkitPerformance || {}; var timing = performance.timing || {}; var parseTime = timing.loadEventEnd - timing.responseEnd; console.log('Parsetime: ', parseTime); }, 0); });