使用 RAIL 模型評估效能

RAIL 是一種以使用者為中心的效能模型,可提供思考效能的架構。這項模型會將使用者體驗分解為重要動作 (例如輕觸、捲動、載入),協助您為每個動作定義成效目標。

RAIL 代表網頁應用程式生命週期的四個不同層面:回應、動畫、閒置和載入。使用者對這些情境的效能期望不同,因此效能目標是根據情境和使用者對延遲的認知 UX 研究定義。

RAIL 效能模型分為 4 個部分:回應、動畫、閒置和載入。
RAIL 效能模型的 4 個部分

重視使用者

以使用者為成效改善工作的重心。下表說明使用者對效能延遲的感受,以及相關的重要指標:

使用者對效能延遲的觀感
0 至 16 毫秒 使用者非常擅長追蹤動作,而且不喜歡不流暢的動畫。只要每秒算繪 60 個新影格,使用者就會覺得動畫很流暢。也就是說,每個影格的轉譯時間為 16 毫秒,包括瀏覽器將新影格繪製到畫面上所需的時間,因此應用程式產生影格的時間約為 10 毫秒。
0 至 100 毫秒 在這個時間範圍內回應使用者動作,使用者會覺得結果是立即顯示。如果時間再長,動作與反應之間的連結就會中斷。
100 至 1000 毫秒 在這個時間範圍內,工作會感覺是自然且持續的進展。對大多數網路使用者而言,載入網頁或變更檢視畫面都代表一項工作。
1000 毫秒以上 超過 1000 毫秒 (1 秒) 後,使用者就會對執行的工作失去專注力。
10000 毫秒以上 如果超過 10000 毫秒 (10 秒),使用者會感到不耐煩,很可能會放棄工作。他們可能不會再回來。

目標和規範

在 RAIL 的脈絡中,「目標」和「規範」具有特定意義:

  • 目標:與使用者體驗相關的主要成效指標。舉例來說, 輕觸即可在 100 毫秒內繪製。由於人類的感知相對穩定,這些目標近期不太可能改變。

  • 規範。有助於達成目標的建議。這些建議可能與目前的硬體和網路連線狀況有關,因此可能會隨時間而異。

回應:在 50 毫秒內處理事件

目標:在 100 毫秒內完成使用者輸入所啟動的轉場效果,讓使用者感覺互動是即時的。

規範

  • 為確保 100 毫秒內顯示回應,請在 50 毫秒內處理使用者輸入事件。這適用於大多數輸入內容,例如點按按鈕、切換表單控制項或啟動動畫。這項功能不適用於觸控拖曳或捲動。

  • 雖然這聽起來違反直覺,但並非一律要立即回應使用者輸入內容。您可以在這 100 毫秒的時間視窗內執行其他耗用資源的工作,但請注意不要封鎖使用者。盡可能在背景執行工作。

  • 如果動作完成時間超過 50 毫秒,請務必提供意見回饋。

50 毫秒或 100 毫秒?

目標是在 100 毫秒內回應輸入內容,但為什麼我們的預算只有 50 毫秒?這是因為除了處理輸入內容外,通常還會執行其他工作,而這些工作會佔用部分時間,導致輸入內容的回應時間超出可接受範圍。如果應用程式在閒置時間以建議的 50 毫秒區塊執行工作,表示輸入內容最多可能會排入佇列 50 毫秒,前提是輸入內容發生在其中一個工作區塊期間。因此,可以安全地假設只有剩餘的 50 毫秒可用於實際輸入處理。下圖顯示了這種影響,說明在閒置工作期間收到的輸入內容會排入佇列,進而減少可用的處理時間:

圖表:顯示在閒置工作期間收到的輸入內容會排入佇列,將可用的輸入處理時間縮短至 50 毫秒
閒置工作對輸入回應預算的影響。

動畫:在 10 毫秒內產生影格

目標

  • 在 10 毫秒內製作動畫中的每個影格。從技術上來說,每個影格的預算上限為 16 毫秒 (1000 毫秒 / 每秒 60 個影格 ≈ 16 毫秒),但瀏覽器轉譯每個影格約需 6 毫秒,因此每個影格的指引為 10 毫秒。

  • 盡量呈現流暢的視覺效果。使用者會注意到影格速率的變化。

規範

  • 在動畫等高壓點,重點是盡可能不要執行任何動作,如果無法避免,則盡量減少動作。盡可能利用 100 毫秒的回應時間預先計算耗用資源的工作,盡量達到 60 FPS。

  • 如需各種動畫最佳化策略,請參閱「算繪效能」。

  • 視覺動畫,例如進場和退場、中間動畫和載入指標。
  • 捲動。包括甩動,也就是使用者開始捲動頁面,然後放開,頁面會繼續捲動。
  • 拖曳。動畫通常會隨著使用者互動而變化,例如平移地圖或雙指撥動以縮放。

閒置:盡量延長閒置時間

目標:盡量延長閒置時間,提高網頁在 50 毫秒內回應使用者輸入內容的機率。

規範

  • 利用閒置時間完成延後的工作。舉例來說,在初始頁面載入時,請盡可能載入少量資料,然後利用閒置時間載入其餘資料。

  • 在閒置時間內執行工作,時間不得超過 50 毫秒。如果時間過長,可能會干擾應用程式在 50 毫秒內回應使用者輸入內容的能力。

  • 如果使用者在閒置時間工作期間與網頁互動,使用者互動應一律優先處理,並中斷閒置時間工作。

載入:在 5 秒內提供內容並與使用者互動

網頁載入速度緩慢時,使用者注意力會渙散,並認為工作流程中斷。載入速度快的網站平均工作階段時間較長、跳出率較低,且廣告可視率較高

目標

  • 根據使用者的裝置和網路功能,盡可能加快載入速度。目前,首次載入的良好目標是在中階行動裝置上,透過緩慢的 3G 連線,於 5 秒內載入網頁並可供互動

  • 後續載入時,網頁載入時間應低於 2 秒。

規範

評估 RAIL 的工具

您可以使用幾項工具自動執行 RAIL 評估。具體使用哪一種方式,取決於您需要的資訊類型和偏好的工作流程。

Chrome 開發人員工具

Chrome 開發人員工具可深入分析網頁載入或執行時發生的所有情況。請參閱「開始分析執行階段效能」,熟悉「效能」面板 UI。

下列開發人員工具功能特別實用:

燈塔

Lighthouse 可在 Chrome 開發人員工具、PageSpeed Insights、Chrome 擴充功能、Node.js 模組和 WebPageTest 中使用。您只要提供網址,工具就會模擬使用緩慢 3G 連線的中階裝置,對網頁執行一系列稽核,然後提供載入效能報表,以及改進建議。

以下稽核特別重要:

回應

載入

WebPageTest

WebPageTest 是一種網頁效能工具,可使用實際瀏覽器存取網頁並收集時間指標。在 webpagetest.org/easy 輸入網址,即可取得詳細報表,瞭解網頁在 Moto G4 裝置上透過緩慢的 3G 連線載入時的效能。您也可以設定納入 Lighthouse 稽核。

摘要

RAIL 是一種觀察網站使用者體驗的工具,可將使用者體驗視為由不同互動組成的歷程。瞭解使用者對您網站的觀感,以便設定對使用者體驗影響最大的成效目標。

  • 專注於使用者需求

  • 在 100 毫秒內回應使用者輸入內容。

  • 在動畫或捲動時,於 10 毫秒內產生影格。

  • 盡量延長主執行緒閒置時間。

  • 在 5000 毫秒內載入互動式內容。