CSS 緩存機制指的是瀏覽器在訪問同一個頁面時,會將已經請求過的 CSS 文件緩存到本地,下次再訪問相同的頁面時,瀏覽器會優先從本地緩存中獲取相應的 CSS 文件,以提升頁面加載速度。
為了實現 CSS 緩存機制,我們可以在 HTTP 響應頭中設置 Expires、Cache-Control、Last-Modified 或 Etag 等響應頭來告知瀏覽器需要緩存的時間和條件。下面是具體的設置方法:
Expires: Wed, 30 Jan 2021 12:00:00 GMT Cache-Control: max-age=3600 Last-Modified: Fri, 08 Jan 2021 08:30:00 GMT Etag: "80e84a-8c-5a22f7c1"
通過設置 Expires 響應頭,瀏覽器會將相應的 CSS 文件緩存到本地,過期時間為 2021 年 1 月 30 日 12:00:00。如果再次訪問該頁面,瀏覽器會在本地緩存中查找對應的 CSS 文件,如果未過期,便直接使用本地緩存。
如果使用 Cache-Control 響應頭,可以設置緩存的時間,例如這里的 max-age=3600 表示緩存有效時間為 1 小時,如果再次訪問該頁面,瀏覽器會檢查本地緩存是否過期,如果未過期,則直接使用本地緩存。
如果使用 Last-Modified 或 Etag 響應頭,瀏覽器會在本地緩存中保存 CSS 文件的時間戳或哈希值,下次訪問頁面時,瀏覽器會先詢問服務器該文件是否發生了修改,如果未發生修改,則直接使用本地緩存。
除了服務器端設置響應頭,我們還可以在 HTML 文件中引入 CSS 文件時,使用版本號等方式主動控制緩存。例如:
<link rel="stylesheet" type="text/css" href="style.css?v=1.0">
通過在 href 屬性后添加版本號,例如上面的 v=1.0,可以讓瀏覽器自動更新緩存。每次 CSS 文件發生修改時,只需要更新版本號,瀏覽器就會重新請求該文件,而不是使用緩存。
總之,合理使用 CSS 緩存機制可以顯著提升頁面的加載速度,同時也需要注意緩存的有效期和更新方式,避免出現耗時長、頁面錯亂等問題。