web缓存优化
1 http缓存优化
1.1 gzip
压缩
- nginx开启
gzip
(on)、gzip_static
(on) - 前端打包js/css/图片等静态资源文件生成
.gz
文件
1.2 web服务器设置协议头(nginx、apache、tomcat等)
- 对于
js
、css
、img
、字体文件
等静态资源文件
使用强缓存
,可配置cache-control:max-age=(1星期/1个月/1年等)
- 对
index.html
使用协商缓存,即每次请求验证是否改动过,具体可设置cache-control:no-cache
、Etag
或last-modify
1.3 增量更新代替全量更新,防止正在访问的页面js、css等文件404报错
2 前端请求优化
2.1 变动少的资源文件的css
、js
、img
等合并压缩,减少请求
- node_modules依赖包合并为一个js文件
- 改动较少的公共组件和通用代码合并为一个js文件
- 图片处理合并为spirit等
2.2 入口文件使用协商缓存(index.html/login.html等)
2.3 构建工具如webpack
打包生成的文件使用contenthash
对异步chunk产生的js、css、img、字体等资源文件使用contenthash生成
html5离线缓存
- 常用于移动端(移动网络)
- 使用
manifest
文件 manifest
文件设置协商缓存,需校验更新manifest
配置缓存文件需谨慎
其他
- 服务端
CDN
技术 - Service Worker