深入理解http请求的过程是前端性能优化的核心
css 样式表置顶
用 link 代替 import
js 脚本置底
合理使用 js 的异步加载能力
link 和import的使用区别
区别1:link是XHTML标签,除了加载CSS外,还可以定义RSS等其他事务;@import属于CSS范畴,只能加载CSS。
区别2:link引用CSS时,在页面载入时同时加载;@import需要页面网页完全载入以后加载。
区别3:link是XHTML标签,无兼容问题;@import是在CSS2.1提出的,低版本的浏览器不支持。
区别4:ink支持使用Javascript控制DOM去改变样式;而@import不支持。
控制重绘与回流
根据场景选择合适的图片格式
- jpg有损压缩,压缩率高,不支持透明 —— 大部分不需要透明图片的业务场景
- png支持透明,浏览器兼容好 —— 大部分需要透明图片的业务场景
- webp压缩程度更好,在ios webview有兼容性问题 —— 安卓全部
- svg矢量图,代码内嵌,相对较小,图片样式相对简单—— 图片样式相对简单的业务场景 (
使用iconfont解决icon问题
)
进行图片压缩 css雪碧图 将图片内签到网页中
请求过程中一些潜在的性能优化点 (减少http请求数量 减少请求资源的大小)
- dns是否可以通过缓存减少dns查询时间?
- 网络请求的过程走最近的网络环境?
- 相同的静态资源是否可以缓存?
- 能否减少请求http请求大小?
- 减少http请求 服务端渲染
文件的压缩 利用网上在线工具压缩css js html等资源
pwa 的应用 service worker