Webアクセス計測時間を取得するJavascript

Sponsored Link

Webアクセス計測時間を取得する

ブラウザがWebページの表示リクエストを出してから表示終了するまでの時間をプロセスごとに表示するJavascriptです。これらはブラウザが持っている時間をロード終了後に表示しています。

よって、読み込み時間を計測したいページのどこかで実行するよう組み込んでおけば動作します。

<script>
window.onload = function(){
var now = (new Date()).getTime();
var t = "navigationStart : "+(now - performance.timing.navigationStart);
t += "<br>unloadEventStart : "+(now - performance.timing.unloadEventStart);
t += "<br>unloadEventEnd : "+(now - performance.timing.unloadEventEnd);
t += "<br>redirectStart : "+(now - performance.timing.redirectStart);
t += "<br>redirectEnd : "+(now - performance.timing.redirectEnd);
t += "<br>fetchStart : "+(now - performance.timing.fetchStart);
t += "<br><strong>domainLookupStart</strong> : "+(now - performance.timing.domainLookupStart);
t += "<br><strong>domainLookupEnd</strong> : "+(now - performance.timing.domainLookupEnd);
t += "<br>connectStart : "+(now - performance.timing.connectStart);
t += "<br>connectEnd : "+(now - performance.timing.connectEnd);
t += "<br>secureConnectionStart : "+(now - performance.timing.secureConnectionStart);
t += "<br>requestStart : "+(now - performance.timing.requestStart);
t += "<br>responseStart : "+(now - performance.timing.responseStart);
t += "<br>responseEnd : "+(now - performance.timing.responseEnd);
t += "<br>domLoading : "+(now - performance.timing.domLoading);
t += "<br>domInteractive : "+(now - performance.timing.domInteractive);
t += "<br>domContentLoadedEventStart : "+(now - performance.timing.domContentLoaded);
t += "<br>domContentLoadedEventEnd : "+(now - performance.timing.domContentLoaded);
t += "<br>domComplete : "+(now - performance.timing.domComplete);
t += "<br>loadEventStart : "+(now - performance.timing.loadEventStart);
t += "<br>loadEventEnd : "+(now - performance.timing.loadEventEnd);
document.getElementById("result").innerHTML = t;
}
</script>
<div id="result"></div>

見方の一例

画面に表示される一例として、下記はDNSへの問い合わせ時間になります。
「domainLookupStart」
「domainLookupEnd」
誤差が全くない場合はキャッシュが使われています。DNSサーバに問い合わせてもルーターのローカルDNSなら差が1くらいとなり、ほぼ時間はかかっていないことがわかります。

ローカルDNSとDNSキャッシュについて

通常、DNSはルーターのローカルDNSを使うので非常に速く動作します。Google DNSなどの外部DNSは接続に余計な時間がかかる分だけ遅くなります。
DNSキャッシュとは一度DNSに名前解決の問い合わせをすると、OSがそれをキャッシュすることをいいます。キャッシュ有効時間は「キャッシュ生存時間」(TTL)と呼ばれています。DNSキャッシュがあれば名前解決が即時で行われるので時間がかかりませんが、ローカルDNSでも十分速いといえます。

補足記事

ブラウザによっては「DNS prefetch」によって、DNSの名前解決を先読みしている場合があります。「DNS prefetch」についてはこちらを参照してください。

Sponsored Link

最新記事はトップページで!

京都発・地方が盛り上がるグルメや観光に撮影ロケ地の話題を提供!


購読するならRSSをご利用ください!

RSSはこちらをご利用ください。


マスコミ各社様の記事使用規約についてはこちらをご覧ください。

当ブログでは掲示板やSNSなど他メディアでURLや記事を紹介することはございませんので、掲示板などで記事を紹介されていても一切無関係です。誤解なきようお願いいたします。
当ブログで転載しているTweetはTwitter社の規約(2013/10)に準じた形式(API利用)によって許可された範囲で行われています。また、Tweet内容の所有権はTwitter社の規約によりTweet元のアカウント所有者にあります。そのため、当ブログでその所有権を主張するものではありません。Tweet内容については責任は負いませんので予めご了承ください。