30July

如何防止瀏覽器快取CACHE?將CSS、JS、圖片加上參數

瀏覽器快取功能是網頁效能優化的項目之一,使用瀏覽器快取功能,能使網頁開啟速度加快,同時也能減少伺服器負擔。

如何防止瀏覽器快取CACHE?將CSS、JS、圖片加上參數

什麼是瀏覽器快取CACHE?

快取(cache)是一個「 優化網站速度 」的計算機記憶體技術,透過「 暫存器緩存 」用戶最近使用的數據,下次瀏覽相同的頁面時,就能更快速的訪問同一個網站。

從技術上講,快取是檔案或資料複本的任何暫存位置,但該詞彙通常用於指代網際網路技術。Web 瀏覽器快取 HTML 檔案、JavaScript 和影像,以便更快地載入網站,而 DNS 伺服器快取 DNS 記錄以加快查詢速度,CDN 伺服器快存內容以減少延遲。

每次使用者載入網頁時,他們的瀏覽器都必須下載大量資料才能顯示該網頁。為了縮短網頁載入時間,瀏覽器會快取網頁上顯示的大部分內容,並將網頁內容的複本儲存在裝置的硬碟上。這樣,下次使用者載入頁面時,大部分內容已經儲存在本地,頁面載入速度會更快。

瀏覽器快取會遇到的問題

使用瀏覽器快取(Browser Cache)雖然可以提高網頁載入速度並減少伺服器負擔,但也有一些缺點,包括:

  1. 內容更新延遲

    • 使用者可能會看到舊版本的網頁內容,因為瀏覽器會從快取中載入頁面,而不是從伺服器獲取最新版本。
    • 這可能導致使用者無法即時獲得最新資訊,尤其是在頻繁更新的網站上(如新聞網站或電子商務平台)。
  2. 快取佔用存儲空間

    • 長時間使用快取可能會累積大量資料,占用裝置的存儲空間,進而影響設備效能。
  3. 隱私與安全風險

    • 公共或共享電腦的快取可能會存儲敏感資訊(如登入狀態、個人資料),如果未清除,可能被其他人存取。
    • 惡意網站可能利用快取機制來發起攻擊,如快取污染攻擊(Cache Poisoning),使用戶載入被篡改的內容。
  4. 錯誤的快取策略導致問題

    • 若伺服器未正確配置Cache-Control或Expires標頭,可能導致瀏覽器過度依賴舊的快取,影響網站的正常運作。
    • 例如,CSS 或 JavaScript 檔案未及時更新,可能導致網頁樣式錯亂或功能失效。

解決瀏覽器快取的方法

瀏覽器快取這個問題雖然很煩人,但其實只要透過類似版本控制(Query String 或 Fingerprinting)的方式,在副檔名後方加上參數,如此一來瀏覽器會認定URL變得不相同,向伺服器請求新的下載

當 CSS、JavaScript 或圖片更新時,改變 URL 來強制瀏覽器重新下載新版本。

例如:< link rel="stylesheet" href="style.css?v=2.0">

若是使用PHP程式語言撰寫的網站,也可以透過語法來自動帶入版本數或日期

例如:< link rel="stylesheet" href="style.css?<?php echo date("Ymdh:i:sa");?>">

總結

清除瀏覽器快取后,每個網頁都將像使用者首次造訪該頁面時一樣載入。如果某些內容在第一次載入不正確並且被快取,則清除快取可以使其正確載入。但是,清除瀏覽器快取也會暫時減慢網頁載入時間。

文章分類