<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>
ページが読み込まれると、コンソールに次の情報が表示されます。
iNavStart: 1449594976150
iNavEnd: 0
iPageLoad: -1449594976150
この計算では、ニース単位のミリ秒が得られると予想していました。確かにiNavEndはであってはなりません
Chrome 47およびFirefox 42でテスト済み(両方ともperformance.timingをサポート)。
私が間違っているつもりはありますか?
Ionut Popaこれに答える Stackoverflowで パフォーマンスAPIを使用してサイトのロード時間を測定する :
Onloadイベントの終了後にloadEventEndを測定する必要があります。そうしないと、0として報告されます。 (onloadイベントにアタッチするjqueryの例)
$(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); });