- 对HTML、CSS、JS文件压缩,减少请求时流量传输。(如html-minifier、clean-css、ugligyjs)
- 文件合并,减少http请求次数,但会存在首屏渲染时间变长的问题。
- 对图片进行优化。
3.1 png8/png24/png32 区别
png8 -- (2^8)256色 + 支持透明
png24 -- 2^24色 + 不支持透明
png32 -- 2^24色 + 支持透明
3.2 不同的图片格式对应的使用场景
jpg 有损压缩,压缩率高,不支持透明
png 支持透明,凌岚气兼容好。
webp 压缩程度最好 但在ios webview有兼容性问题。
svg矢量图,代码内嵌先对较小,但是图片样式简单。
总结:图片为透明背景时时使用png格式的图片,对图片品质要去不高时考虑压缩成png8格式的图片。当图片为不透明时考虑使用webp或jpg优先使用webp。能找到svg图片就使用svg图片(在iconfont中找);
3.3 图片的使用方式
- 雪碧图:优:减少http请求数量,劣:雪碧图没有加载出来时所有引用的子图片全部无法显示,因此,合成> 雪碧图时需要注意雪碧图的大小。
- image inline:以base64为编码的形式内嵌到html中:优:减少请求数量,劣:无法复用。因此使用此方式 仅限小图标使用次数少的情况下。
- css与js加载机制
- css阻塞
css head中阻塞页面的渲染。
css阻塞js的执行
css不阻塞外部脚本的加载 - js阻塞
直接引入的js阻塞页面的渲染
js不阻塞资源的加载
js顺序执行,阻塞后续js逻辑的执行
补充:延迟加载js,
defer:告诉浏览器立即下载,但延迟执行,包含的脚本将延迟浏览器遇到