前端性能优化笔记

361 阅读2分钟

一、图片

1、懒加载,首次尽可能只加载首屏内的图片

2、减少图标数量,尽可能使用雪碧图或者矢量图标,更推荐矢量图标,不会出现压缩,也不会影响画质

3、轮播部分只加载首张,页面加载完成后重新渲染

4、小程序部分,弹窗及轮播可使用属性:uc-perf-stat-ignore:image;。可以忽略该部分加载

二、Dom

1、scu优化,减少无效渲染次数

2、计算高度,首次只渲染首屏

3、减少Dom深度

4、组件化,可以让组件有自己的state调度

5、尽可能减少重排

6、页面添加事件,可通过事件委托进行优化

7、行内定位时,尽量使用弹性布局,而不是浮动,两者渲染时间查3~4倍

8、减少CLp

三、存储

1、如无必要,尽量减少storage的使用,可以使用redux、vuex以及内存等中使用

四、网络

1、串行接口尽量合并

2、设置网络缓存

3、在页面创建时就调用

4、使用http2及以上

5、不同接口返回数据有计算关系,可以使用Promise.All()

6、静态资源使用CDN

五、系统级

1、使用预加载方式,降低加载时间

2、小程序实行分包加载

3、网页进行按需加载

4、服务端渲染

5、打包时进行压缩,降低体积

六、交互

1、CLS(Cumulative Layout Shift) 累积布局偏移 是一个以用户为中心的测量视觉稳定性的重要指标,这项指标有助于量化用户使用时发生意外偏移的情况,如何解决呢:

  • 对图片和视频元素总是设定好尺寸,否则保留所需的空间。这样可以保证浏览器给这些元素分配足够的空间,在加载之后,不会产生布局偏移。如果浏览器支持,可以开启 unsized-media feature policy 的策略。

  • 不要把内容插入到已有元素的上方,除非为了响应用户交互。

  • 如果需要用到动画,优先使用不会产生布局偏移的CSS属性。