网络资源缓存

前端性能优化是提升用户体验和页面响应速度的关键,可以从 网络优化、资源优化、缓存优化 三个方面系统地进行。以下是详细说明:


一、网络优化(减少请求数、降低延迟、提升加载速度)

  1. 减少 HTTP 请求数量

合并请求(CSS、JS 合并打包)

雪碧图(sprite image)

使用字体图标替代小图标

使用 SVG sprite 或 iconfont

  1. 使用 HTTP/2 或 HTTP/3 协议

多路复用,解决并发限制

头部压缩,减少请求大小

服务器推送资源

  1. 启用 Gzip/Brotli 压缩

压缩 HTML、CSS、JS 等文本资源

Brotli 相较 Gzip 更优但兼容性稍差

  1. 使用 CDN(内容分发网络)

缓解服务器压力

靠近用户节点,加速资源加载

可配置边缘缓存、预取策略

  1. 预连接与预加载

:提前 DNS 查询 :提前 TCP+TLS 建连 :优先加载关键资源


二、资源优化(资源本身的大小与加载方式)

  1. 图片优化

使用现代格式:WebP、AVIF 替代 JPG/PNG

图片压缩(TinyPNG、ImageMagick)

延迟加载(lazyload):

响应式图片: + srcset

  1. JavaScript 优化

Tree Shaking 移除无用代码

按需加载(例如按路由/组件懒加载)

动态导入(import())替代同步加载

拆分大 bundle,利用 Webpack SplitChunksPlugin

  1. CSS 优化

使用 scoped CSS 或 CSS Module

删除未使用样式(PurgeCSS)

使用 CSS 预处理器精简结构(Less/Sass)

关键路径 CSS 提取(Critical CSS)

  1. 字体优化

子集字体:只保留使用的字符集

字体懒加载:不阻塞首屏渲染

使用 font-display: swap 提升渲染体验


三、缓存优化(重复访问的资源命中缓存,加快加载)

  1. 浏览器缓存策略(HTTP 头控制)

强缓存:通过 Cache-Control / Expires 控制有效期

示例:Cache-Control: max-age=31536000

协商缓存:通过 ETag / Last-Modified 协助判断是否修改

服务端返回 304 Not Modified

  1. 文件指纹 + 缓存失效机制

文件名加 hash 值(如 main.8f3a7.js)

保证更新时能命中最新资源,未更新时用缓存

  1. 使用 Service Worker 做离线缓存

可实现更灵活的缓存策略,如:

stale-while-revalidate(旧资源立即返回,后台更新新资源)

cache-first、network-first 等策略

提升 PWA 性能,支持离线加载

  1. 本地存储优化

利用 localStorage / indexedDB 缓存静态数据(如配置项、接口缓存)

注意缓存大小与安全性,防止 XSS 利用


总结

优化维度 核心目标 常见手段

网络优化 降低加载延迟 CDN、Gzip、HTTP/2、预加载、请求合并

资源优化 减小体积、延迟加载 图片压缩、JS/CSS 按需加载、Tree Shaking

缓存优化 重复访问加速 Cache-Control、ETag、Service Worker、文件 hash

相关推荐
wangruofeng4 小时前
AI Models 1.1.0 发布,查大模型价格、对比模型和找 API 地址
前端·aigc·ai编程
wangruofeng4 小时前
给前端开发者的 100 个设计参考网站
前端·设计
星栈8 小时前
视频即代码,Remotion 能做什么、不能做什么
前端·音视频开发
广州华水科技8 小时前
单北斗GNSS位移监测系统的应用与技术解析
前端
用户47949283569158 小时前
从一句话或代码仓到可交互 HTML:开源 Agent 画图技能 Archify v3.2 实测与选型边界
前端·后端·面试
风骏时光牛马10 小时前
生成一个AI多模态标题,仅输出一条标题,无额外文字、问句、备选、配图、文案等任何附加内容,不需要其他的任务服务 只要标题。
前端
wangruofeng11 小时前
从 GIF 到 AVIF:网页图片格式演进与 2026 年选型指南
前端·架构
清晨Coding12 小时前
为什么用 React Developer Tools 查看组件树这么乱?
前端·react.js
鶴哥只手遮天12 小时前
《Electron 45.2.3 内核解剖》第 4 章 补丁体系:380 个补丁改了什么
前端·electron
FungLeo14 小时前
成为全栈·Vue 管理后台篇·分类树与标签管理:层级数据如何落到管理界面
前端·javascript·vue.js·分类树·naive ui·标签管理·前端数据结构