透過 PRPL 模式套用即時載入

PRPL 是一種縮寫,說明用於載入網頁 快速提升互動性

  • 預先載入遲到的資源。
  • 盡快轉譯初始路線。
  • 預先快取剩餘的資產。
  • 延遲載入其他路徑和一般資產。

在本指南中,您可以瞭解這些技巧如何相輔相成,但還是 進而帶來更出色的成效

使用 Lighthouse 稽核網頁

執行 Lighthouse,找出符合 PRPL 的改進機會 技巧:

  1. 按下 Control+Shift+J 鍵 (或在 Mac 上為 Command+Option+J 鍵) 開啟開發人員工具。
  2. 按一下「Lighthouse」分頁標籤。
  3. 勾選「效能」和「漸進式網頁應用程式」核取方塊。
  4. 按一下「執行稽核」即可產生報表。

詳情請參閱「使用 Lighthouse 探索效能商機」一文。

預先載入重要資源

如果剖析特定資源並剖析特定資源,Lighthouse 會顯示以下稽核失敗項目 延遲擷取:

Lighthouse:預先載入金鑰要求稽核

預先載入 是一項宣告式擷取要求,會指示瀏覽器要求瀏覽器預先載入掃描器找不到的資源,例如 background-image 屬性參照的圖片。在 HTML 文件的標題中加入包含 rel="preload"<link> 標記,即可預先載入延遲找到的資源:

<link rel="preload" as="image" href="hero-image.jpg">

新增 <link rel="preload"> 指令之後,系統會啟動該資源的要求,並將其儲存在快取中。隨後瀏覽器就可以視需要擷取資訊。

如要進一步瞭解如何預先載入重要資源,請參閱 「預先載入重要資產」指南。

盡快算繪初始路徑

如有資源延遲首次繪製時間,Lighthouse 會發出警告。 網站向螢幕顯示像素時:

Lighthouse:排除禁止轉譯資源稽核作業

為了改善 First Paint,Lighthouse 建議內嵌重要的 JavaScript 和 並延後執行 async、 以及內嵌在不需捲動位置的重要 CSS這麼做可以提高效能 不需要在伺服器之間來回往返,進而擷取會妨礙轉譯的資產。 不過,從開發的角度來看,內嵌程式碼較難維護 無法分別快取。

另一個改善 First Paint 的做法,是伺服器端轉譯, 您網頁的 HTML。這會在指令碼期間立即向使用者顯示內容 仍在擷取、剖析及執行不過,這麼做可能會讓 HTML 檔案酬載可能會大幅影響互動所需時間, 或應用程式變為互動並能回應 使用者輸入內容

您無法在 建議您只考慮內嵌樣式和伺服器端 重要性遠大於應用程式的利弊。你可以 歡迎參考下列資源,進一步瞭解這兩個概念。

Service Worker 的要求/回應

預先快取資產

作為 Proxy,服務工作站可以直接從快取中擷取資產 而非伺服器這樣不僅能讓使用者 並加快 重複造訪。

使用第三方程式庫簡化服務工作站產生程序 除非您有較複雜的快取需求 因此,使用 Kubernetes Engine 即可。例如: Workbox 提供了 建立並維護 Service Worker 的工具 快取資產。如要進一步瞭解 Service Worker 和離線可靠性, 請參閱可靠性學習路徑中的服務工作處理程序指南

延遲載入

如果透過網路傳送過多資料,Lighthouse 會顯示失敗的稽核作業。

Lighthouse:有大量的網路酬載稽核

這包括所有資產類型,但大型 JavaScript 酬載更是如此 而耗用的資源會多花上許多。 Lighthouse 也會視情況提供警告。

Lighthouse:JavaScript 啟動時間稽核

如要傳送小型的 JavaScript 酬載,其中只包含 使用者會先載入您的應用程式,視需求分割整個套件和延遲載入區塊。

分割套件後,請預先載入更多區塊 的標記 (請參閱預先載入重要資產指南)。 預先載入可確保更迅速地擷取並下載更重要的資源 。

除了視需求分割及載入不同的 JavaScript 區塊之外 Lighthouse 也針對延遲載入不重要的圖片提供稽核功能。

Lighthouse:延後畫面外圖片稽核作業

如果您在網頁中載入許多圖片,請延遲所有位於需捲動位置的圖片,或是 裝置可視區域外 (請參閱「使用延遲載入圖片」)。

後續步驟

現在您已經瞭解 PRPL 模式背後的幾個基本概念了 請繼續閱讀本章節的下一份指南瞭解詳情 請務必記得,並非所有技術都需要 套用變更達成下列任一事項後, 明顯的效能提升

  • 預先載入重要資源。
  • 盡快轉譯初始路線。
  • 預先快取剩餘的資產。
  • 延遲載入其他路徑和一般資產。

如要進一步瞭解 PRPL 模式,請參閱下文。