Loading

微信小程序项目打包性能优化总结

前言:当我们开发完一个微信小程序项目后,紧接着就是发布,但在发布之前我们必须要做到就是想办法优化一下我们的项目,无论是性能,体积,或者用户体验,这是非常重要的一个步骤。

首先介绍一个微信开发者工具自带的工具 Audits 。它可以方便的对我们的小程序项目进行 性能,体验,最佳实践 三个方面的评估,给我们提供参考意见,比较好用。

1. 运行体验评分 

尽可能的手动测试小程序的每一个页面,每一个事件。测试完毕点击结束。

 

这样我们就可以得到一个评分报告,在评分下面会给出详细建议。可以看到我的项目性能满分,最佳实践及格,但体验只有 15 赶紧看下吧。

性能部分: 一般会出现的问题有:

问题解决:

1. 一个页面使用少于 1000 个 WXML 节点,节点树深度少于 30 层,子节点数不大于 60 个。一个太大的 WXML 节点树会增加内存的使用,样式重排时间也会更长。在样式使用上也可以尽量少使用会引起重排的样式。

2. 确认并优化脚本的逻辑,比如 ①减少循环操作,② 条件逻辑把频率高的情况放在前面,适当封装代码等等。

3. 首屏时间是指用户开始看到第一屏的内容的时间,首屏时间太长会导致用户长时间看到的都是白屏,会一直等待有意义的内容展示出来。出现这一情况,应仔细检查这个过程都有哪个操作,一般来说,可能是请求数据的时间太长,或者是一次渲染的数据太大导致渲染时间太长。小程序启动时,微信会为小程序展示一个固定的启动界面,界面内包含小程序的图标、名称和加载提示图标。此时,微信会在背后完成几项工作:下载小程序代码包-->加载小程序代码包-->初始化小程序首页。下载到的小程序代码包不是小程序的源代码,而是编译、压缩、打包之后的代码包。所以我们可以从这几个方面下手,优化首屏时间。

  ① 减少代码包体积

  • 在我们打包代码时勾选“上传代码时,压缩代码”选项
  • 我们可以打开 详情-> 代码依赖分析,来看那个模块代码有可能有优化空间。 比如miniprogram_npm 里的包,这里的代码会一起打包到最终代码里,所以尽量删除调没用的包
  • 另外可以将样式分离出独立的文件引入减少样式体积。
  • 减少资源包中的图片等资源的数量和大小。
  • 采用分包加载机制,根据业务场景,将用户访问率高的页面放在主包里,将访问率低的页面放入子包里,按需加载。
  • 采用分包预加载技术,采用独立分包技术

4. 对于 setData 调用不应过于频繁,且没有在页面中应用的数据尽量不要放在data中,因为setData在赋值时会带来一些性能开销,详情见官方文档 运行时性能。 

5. 提高网络请求的速度,比如降低请求数,合理缓存请求结果。

 

体验部分:(相关的工具解释的很清楚)

 

最佳实践部分:

 

 

总结:

性能方面:

1 避免过大的 WXML 节点数目 

2 避免执行脚本的耗时过长的情况

3 避免首屏时间太长的情况

4 网络图片资源应开启 HTTP 缓存控制

5 合理控制图片的大小 

6 避免渲染界面的耗时过长的情况

7 对网络请求做必要的缓存以避免多余的请求

8 避免 setData 的调用过于频繁 

9 避免 setData 的数据过大

10 避免短时间内发起太多的图片请求

11 避免短时间内发起太多的请求

体验方面:

1 滚动区域可以开启惯性滚动

2 合理地设置好可点击元素的响应区域大小。

5 应让图片按原图宽高比例显示

最佳实践:

1 避免使用废弃接口

2 合理使用setData,这里可以看官方文档的介绍 运行时性能

3 定时器跟随页面回收

4 按需引入 wxss 资源,如果小程序中存在大量未使用的样式,会增加小程序包体积大小,从而在一定程度上影响加载速度 

3 所有资源请求都建议使用 HTTPS

4 避免将不可能被访问到的页面打包在小程序包里

 

 

posted @ 2021-03-03 20:22  如影i  阅读(668)  评论(0编辑  收藏  举报