跳至主要內容

    FID

    FID 是舊的互動指標,已被 INP 取代。它只衡量第一次互動延遲,無法反映整體互動體驗。

    定義

    FID(First Input Delay)衡量使用者第一次互動到瀏覽器開始處理事件的延遲。由於它只看第一次互動,無法反映整體互動體驗,因此 Core Web Vitals 已改用 INP 作為主要互動指標。

    為什麼重要

    • 2024 年 3 月前是 Core Web Vitals 的互動指標
    • 理解為何 INP 取代 FID(INP 更貼近真實互動體驗)
    • 有助於定位頁面載入時主執行緒被阻塞的問題
    • 避免只追 FID 而忽略後續互動的延遲問題
    • FID 只能捕捉「第一次」互動,遺漏大量使用者行為
    • 需要使用者真的互動才能測量(純載入無法觸發)
    • 了解 FID 有助理解 Web Vitals 的演進歷史

    怎麼做(實作重點)

    • 把優化目標轉移到 INP:移除長任務與減少 JS 負擔
    • 延後非必要 script(async/defer),拆分 bundle
    • 減少主執行緒阻塞(第三方 script、同步計算)
    • 使用 TBT(Total Blocking Time)作為 lab 環境的診斷指標
    • 避免在 DOMContentLoaded 執行耗時任務
    • 把密集計算移到 Web Worker
    • 監控工具現已轉向 INP,FID 資料可作為歷史參考

    範例

    html
    // 雖然 FID 已被取代,仍可監控作為參考
    import { onFID } from 'web-vitals';
    
    onFID((metric) => {
      console.log('FID:', metric.value, 'ms');
      // 注意:建議同時監控 INP
    });
    
    // 改用 INP(推薦)
    import { onINP } from 'web-vitals';
    onINP((metric) => {
      console.log('INP:', metric.value, 'ms');
    });

    常見問題

    關於這個詞彙的常見問答。

    回到詞彙表