ページロード時間計測ツール

このツールはPerformanceNavigationTiming APIを使用して、 現在のページのロード時間を計測します。また、この機能を実装するためのサンプルコードも提供します。

ページロード時間を計算中...

サンプルコード

// PerformanceNavigationTimingを使用してページロード時間を計測するサンプルコード
function getPageLoadTiming() {
  // PerformanceNavigationTimingが利用可能か確認
  if (performance && 'getEntriesByType' in performance) {
    // ナビゲーションのタイミング情報を取得
    const navigationEntries = performance.getEntriesByType('navigation');
    
    if (navigationEntries.length > 0) {
      const navigationTiming = navigationEntries[0] as PerformanceNavigationTiming;
      
      // 各種タイミング指標を計算
      const timingMetrics = {
        // DNSルックアップ時間
        dnsLookup: navigationTiming.domainLookupEnd - navigationTiming.domainLookupStart,
        
        // TCP接続時間
        tcpConnection: navigationTiming.connectEnd - navigationTiming.connectStart,
        
        // サーバーレスポンス時間(Time to First Byte)
        serverResponse: navigationTiming.responseStart - navigationTiming.requestStart,
        
        // コンテンツダウンロード時間
        contentDownload: navigationTiming.responseEnd - navigationTiming.responseStart,
        
        // DOM処理時間
        domProcessing: navigationTiming.domInteractive - navigationTiming.responseEnd,
        
        // DOMContentLoaded時間
        domContentLoaded: navigationTiming.domContentLoadedEventEnd - navigationTiming.domContentLoadedEventStart,
        
        // リソース読み込み時間
        resourceLoading: navigationTiming.loadEventStart - navigationTiming.domContentLoadedEventEnd,
        
        // ロードイベント処理時間
        loadEvent: navigationTiming.loadEventEnd - navigationTiming.loadEventStart,
        
        // 合計ページロード時間
        totalPageLoad: navigationTiming.loadEventEnd - navigationTiming.startTime,
        
        // インタラクティブになるまでの時間
        timeToInteractive: navigationTiming.domInteractive - navigationTiming.startTime,
        
        // 完全に読み込まれるまでの時間
        completePageLoad: navigationTiming.loadEventEnd - navigationTiming.startTime
      };
      
      return timingMetrics;
    }
  }
  
  // APIが利用できない場合はnullを返す
  return null;
}

// 使用例
const pageLoadTiming = getPageLoadTiming();
if (pageLoadTiming) {
  console.log('ページロード時間の詳細:', pageLoadTiming);
  console.log(`合計ページロード時間: ${pageLoadTiming.totalPageLoad.toFixed(2)}ms`);
}

使用方法

  1. 上記のサンプルコードをコピーします。
  2. あなたのウェブサイトのJavaScriptファイルに貼り付けるか、<script>タグ内に配置します。
  3. 関数を呼び出して結果を取得します。
  4. 必要に応じて、計測結果をアナリティクスツールに送信したり、ユーザーに表示したりできます。

注意事項

  • PerformanceNavigationTiming APIは最新のブラウザでのみサポートされています。
  • 計測結果はブラウザ、ネットワーク状況、デバイス性能などによって異なります。
  • 実際のユーザー体験を測定するには、実際のユーザーからのデータ収集(RUM: Real User Monitoring)を検討してください。