记一次性能优化过程

193 阅读1分钟

最近做了一个大屏项目,时间非常紧张,加班加点做了出来,没有管性能的问题,项目初步出来之后,有了时间做个性能优化。

页面性能分析

首先借助chrom浏览器的lighthouse简单分析一下页面性能

image.png

  • performance: 49
  • First Contentful Paint: 2.2s
  • time to interactive: 9.6s
  • Largest Contentful Paint: 3.6s
  • Cumulative Layout Shift: 0.111
  • Total Blocking Time: 140ms

这是lighthouse给出的优化建议:

image.png

下面主要针对一下几个方向做优化

webp图片的缓存配置

项目中很多图片是webp格式,但是服务器返回图片的时候,没有像对png图片那样设置缓存的响应头,这里让后端配置了一些服务器 image.png

CDN加速

把项目的vue和echarts都改为通过cdn引入

image.png

gzip压缩

把项目的较大的css js文件都输出为gzip,这里也要后端配置一下服务器,设置响应头为content-encode: gzip image.png

字体压缩

利用字蛛压缩使用的苹方字体,源文件大小10M,我们利用常用的2500个汉字通过字蛛转换后得到一份大小只有500k的字体文件,大大提高了首屏加载速度

npm install font-spider -g

image.png

这是后面最终效果

image.png

可见,对于首屏加载速度的优化效果还是非常明显的