当前位置: 首页 > news >正文

前端开发资源缓存策略

好的,我来系统讲一下 前端开发中的资源缓存策略,包括原理、常见策略和实战建议。


前端开发资源缓存策略

一、为什么需要缓存?

  • 提高加载速度(减少请求)

  • 减轻服务器压力

  • 提升用户体验


二、浏览器缓存的分类

类型说明
强缓存不发送请求到服务器,直接用本地缓存。
协商缓存发送请求到服务器,服务器判断资源是否改变,决定返回新资源或304。

三、常见的缓存策略

1. 强缓存(直接用本地资源,不访问服务器)

  • 依赖 HTTP 头部:

    • Expires(HTTP/1.0,绝对时间,受本地时间影响)

    • Cache-Control: max-age=xxx(HTTP/1.1,相对时间,更常用)

示例:

Cache-Control: max-age=31536000

表示资源在 1 年内有效,不会重新请求。


2. 协商缓存(需要向服务器确认)

  • 依赖 HTTP 头部:

    • Last-Modified / If-Modified-Since

    • ETag / If-None-Match

流程:

  1. 浏览器请求资源。

  2. 服务器返回资源,同时加上 Last-ModifiedETag

  3. 下次请求时,浏览器带着这些信息询问服务器。

  4. 服务器对比后:

    • 没变化:返回 304 + 空body。

    • 有变化:返回 200 + 新资源。


四、缓存更新的难题

版本更新后,旧缓存怎么清理?

解决方案:

  • 文件名加 hash(最常见)

    • main.7c9c0a1.js

  • CDN 配合缓存控制

  • 合理使用 Service Worker(复杂但灵活)


五、常见缓存策略搭配

资源类型缓存策略
HTML 页面不缓存/短缓存 + 每次协商(保证内容更新)
CSS/JS(加hash)强缓存一年,更新自动 hash 变化
图片、字体(加hash)强缓存一年,更新自动 hash 变化
API 接口数据按需缓存,通常设置为不缓存或者短时缓存

六、实战建议

  • 构建工具(如Webpack)自动加hash。

  • 公共资源使用CDN加缓存头。

  • 重要接口返回时设置合理的 Cache-Control。

  • 监控缓存命中率,定期评估。


要不要我再补充一版关于 缓存具体设置示例(比如 nginx 配置 / webpack 配置)?要的话告诉我!🚀
要不要顺便也讲下更进阶一点的 Service Worker 离线缓存方案?✨
(都可以一起搞懂,很实用!)你想听哪一块?

相关文章:

  • 蓝桥杯 9.生命之树
  • 深入理解 JavaScript 的 typeof 运算符:返回的数据类型
  • 2024ICPC网络赛第二场题解
  • 个人介绍网站设计
  • Charles 抓包入门教程
  • 事件绑定tips
  • 【MySQL专栏】MySQL数据库表的内外连接
  • 连接远程服务器
  • Golang | 集合求交
  • 中国科学院大学计算机考研历年初试分数线分析以及计算机所考的科目有哪些?
  • apple提包的最佳时间是月初和月末
  • 学习笔记2(Lombok+算法)
  • 互联网大厂Java面试:从Spring Boot到微服务架构的实践与挑战
  • 【上位机——MFC】文档
  • Java基础——排序算法
  • Nacos-SpringBoot 配置无法自动刷新问题排查
  • 高德地图 API 拿到当前定位和目的地址转经纬度,实现路径规划
  • Matlab算例运行
  • 数据库关系模型的总结
  • 5、Rag基础:RAG 专题
  • 《沙尘暴》:用贴近生活的影像和表演拍摄悬疑剧
  • 央视曝光假进口保健品:警惕!保税仓发货不等于真进口
  • 新版国家卫生监督抽查计划发布,首次明确打击网络“医托”
  • 面对面倾听群众意见建议,及时回应解决群众“急难愁盼”问题!龚正在基层开展下访活动,调研城市更新
  • 男子称喝中药治肺结节三个月后反变大增多,自贡卫健委回应
  • 中共中央政治局召开会议,分析研究当前经济形势和经济工作,中共中央总书记习近平主持会议