网络资源缓存

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


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

  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

相关推荐
崔庆才丨静觅3 小时前
hCaptcha 验证码图像识别 API 对接教程
前端
passerby60614 小时前
完成前端时间处理的另一块版图
前端·github·web components
掘了4 小时前
「2025 年终总结」在所有失去的人中,我最怀念我自己
前端·后端·年终总结
崔庆才丨静觅4 小时前
实用免费的 Short URL 短链接 API 对接说明
前端
崔庆才丨静觅5 小时前
5分钟快速搭建 AI 平台并用它赚钱!
前端
崔庆才丨静觅5 小时前
比官方便宜一半以上!Midjourney API 申请及使用
前端
Moment5 小时前
富文本编辑器在 AI 时代为什么这么受欢迎
前端·javascript·后端
崔庆才丨静觅5 小时前
刷屏全网的“nano-banana”API接入指南!0.1元/张量产高清创意图,开发者必藏
前端
剪刀石头布啊5 小时前
jwt介绍
前端
爱敲代码的小鱼6 小时前
AJAX(异步交互的技术来实现从服务端中获取数据):
前端·javascript·ajax