日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

知識大盤點:JS緩存機制中的五個關鍵要點,需要具體代碼示例

導語:在前端開發中,緩存是提高網頁性能的重要一環。JavaScript緩存機制是指將已經獲取的資源保存在本地,以便在后續的訪問中能夠直接使用緩存,從而減少資源加載時間和網絡帶寬的消耗。本文將介紹JS緩存機制中的關鍵要點,并提供具體的代碼示例。

一、緩存類型

    強緩存

強緩存是指通過設置HTTP響應頭中的Expires或Cache-Control字段來實現的緩存機制。當瀏覽器請求一個資源時,會先檢查該資源在本地是否存在緩存,如果存在且仍在有效期內,則直接使用緩存,不再發送請求。

示例代碼:

// 設置緩存時間為1個小時
res.setHeader('Cache-Control', 'max-age=3600');

登錄后復制登錄后復制

    協商緩存

協商緩存是通過設置HTTP請求頭中的If-Modified-Since或If-None-Match字段來與服務器進行通信的緩存機制。當瀏覽器請求一個資源時,會先發送請求到服務器,服務器根據請求頭中的字段和資源的最后修改時間進行比較,如果資源未發生變化,則返回狀態碼304 Not Modified,并通知瀏覽器使用本地緩存。

示例代碼:

// 獲取請求頭中的If-Modified-Since字段
const ifModifiedSince = req.headers['if-modified-since'];

// 獲取資源的最后修改時間
const lastModified = fs.statSync(filepath).mtime.toUTCString();

// 比較請求頭中的字段與最后修改時間
if (ifModifiedSince === lastModified) {
  res.statusCode = 304; // Not Modified
  res.end();
} else {
  res.setHeader('Last-Modified', lastModified);
  // 返回資源
  res.end(file);
}

登錄后復制

二、緩存位置

    瀏覽器緩存

瀏覽器緩存是指緩存在瀏覽器本地的緩存文件。當瀏覽器訪問同一資源時,會先檢查該資源是否存在緩存文件,如果存在則直接使用緩存,否則發送網絡請求。

示例代碼:

// 讀取緩存
const cache = localStorage.getItem('cache');

// 判斷緩存是否存在
if (cache) {
  // 使用緩存
} else {
  // 發送網絡請求
}

登錄后復制

    服務器緩存

服務器緩存是指緩存在服務器端的緩存文件。當瀏覽器請求一個資源時,服務器會檢查該資源是否存在緩存文件,如果存在則直接返回緩存文件。

示例代碼:

// 判斷文件是否存在
if (fs.existsSync(filepath)) {
  // 返回緩存文件
} else {
  // 發送網絡請求
}

登錄后復制

三、緩存時間控制

    緩存時間

緩存時間是指強緩存或協商緩存的有效期時間,可以根據需求設置不同的緩存時間。

示例代碼:

// 設置緩存時間為1個小時
res.setHeader('Cache-Control', 'max-age=3600');

登錄后復制登錄后復制

    緩存策略

緩存策略是指根據資源類型或資源路徑設置不同的緩存策略。可以使用正則表達式或字符串匹配來實現不同的緩存策略。

示例代碼:

// 設置圖片資源的緩存時間為1個月
if (req.url.match(/.jpg|.png|.gif$/)) {
  res.setHeader('Cache-Control', 'max-age=2592000');
}

登錄后復制

四、緩存更新

    版本控制

版本控制是指在請求資源時添加版本號,當資源發生改變時更新版本號。通過更新版本號可以強制瀏覽器重新加載資源。

示例代碼:

<!-- 添加版本號 -->
<link rel="stylesheet" href="styles.css?v=1.0">
<script src="script.js?v=1.0"></script>

登錄后復制

    強制刷新

強制刷新是指通過設置Cache-Control字段的max-age為0來告訴瀏覽器立即更新緩存。

示例代碼:

// 強制刷新緩存
res.setHeader('Cache-Control', 'max-age=0');

登錄后復制

五、緩存清除

緩存清除是指手動刪除瀏覽器本地的緩存文件或服務器端的緩存文件。

示例代碼:

// 清除瀏覽器緩存
localStorage.removeItem('cache');

// 清除服務器緩存
fs.unlinkSync(filepath);

登錄后復制

總結:對于前端開發中常見的JS緩存機制,我們介紹了五個關鍵要點,涉及的內容包括緩存類型、緩存位置、緩存時間控制、緩存更新和緩存清除。掌握這些關鍵要點能夠幫助我們更好地理解和應用緩存機制,提升網頁性能,提升用戶體驗。希望通過本文的介紹,能夠對各位讀者有所幫助。

分享到:
標簽:JS 關鍵 機制 緩存 要點
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定