Discuz! Board

查看: 263|回复: 0

下面是一個簡單的網頁的 程式碼。

[复制链接]

1

主题

1

帖子

5

积分

新手上路

Rank: 1

积分
5
发表于 2023-9-19 19:05:54 | 显示全部楼层 |阅读模式
這是請求網頁的傳統方式,它基本上有兩個問題。一是它需要至少兩次往返的 HTTP 通訊。另一種是網頁在接收到樣式檔案之前會顯示一個空白。一旦這個階段超過2秒,使用者體驗就會很糟糕。這種機制的問題在於,它迫使用戶等待瀏覽器下載 HTML 檔案、解釋它、檢測必要的依賴項並最終檢索所需的所有內容。如果一種資源依賴另一種資源,則會建立一條關鍵鏈,例如在 CSS 檔案中呼叫字體時。考慮到每個依賴項的連接、下載和讀取時間,這會延遲渲染並增加載入時間。透過伺服器推送,我們可以解決這個問題。伺服器推送允許伺服器搶先將網站資源推送到客戶端,而無需用戶專門請求。

如果謹慎使用,我們可以提前發送我們知道用戶請求頁面 斯洛文尼亚电话号码列表 所需的資訊。使用者不需要等待伺服器發送index.html頁面,然後等待瀏覽器請求並接收style.css,使用者只需要等待伺服器同時回應s到初始的要求。這意味著瀏覽器可以比等待更快地開始顯示頁面。正如您可能想像的那樣,伺服器推送可以減少頁面的渲染時間。HTTP/2 (h2) 伺服器推送是 HTTP 協定第 2 版中包含的性​​能功能之一。只要所有 URL 都透過相同的主機名稱和協定傳送,它就允許 Web 伺服器提前(在客戶端請求之前)將內容「傳送」到客戶端。伺服器推送解決什麼問題?雖然減少關鍵內容到伺服器的往返次數是伺服器推送解決的問題之一,但這並不是唯一的問題。

伺服器推送可以作為許多特定於的優化反模式的合適替代方案,例如將 CSS 和 JavaScript 直接嵌入到使用資料 這些技術在中流行起來,因為它們減少了我們所說的頁面感知渲染時間,這意味著雖然頁面的整體載入時間可能不會減少,但頁面對使用者來說載入速度會更快。畢竟這是有道理的。如果您將內聯 插入到 標籤內的 HTML 文件中,瀏覽器可以立即開始將樣式套用到 HTML,而無需等待從外部來源取得它們。這個概念適用於使用資料 URI 方案的內聯腳本和二進位資料。這些做法似乎是解決問題的好方法,對吧?當然,對於 HTTP/1 工作流程,您別無選擇。當我們內聯放置資源時,缺點是內嵌內容無法被有效地快取。當樣式表或 JavaScript 檔案等資源保持外部和模組化時,它可以更有效地緩存在瀏覽器中。




當使用者存取需要該資產的後續頁面時,可以從快取中提取該資產,從而無需向伺服器發出額外請求。然而,當我們內聯嵌入內容時,該內容沒有自己的快取上下文。它的快取上下文與其插入的資源相同。以具有內嵌 CSS 的 HTML 文件為例。如果 HTML 文件的快取策略是始終從伺服器取得標記的新副本,則內嵌 CSS 永遠不會自行快取。當然,它所屬的文檔可以被緩存,但包含此重複 CSS 的後續頁面將被重複下載,並且或多或少會顯著增加。即使快取策略更加寬鬆,HTML 文件通常也有有限的保質期。然而,對於仍在使用 HTTP/1 的人來說,這是一個可以接受的折衷方案。

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|DiscuzX

Copyright © 2001-2013 Comsenz Inc.Template by Comsenz Inc.All Rights Reserved.

Powered by Discuz!X3.4

快速回复 返回顶部 返回列表