小程序启动会常常遇到如下图场景:
这是因为,小程序首次启动前,微信会在小程序启动前为小程序准备好通用的运行环境,如运行中的线程和一些基础库的初始化
然后才开始进入启动状态,展示一个固定的启动界面,界面内包含小程序的图标、名称和加载提示图标。此时,微信会在背后完成几项工作:
下载到的小程序代码包不是小程序的源代码,而是编译、压缩、打包之后的代码包
整体流程如下图:
围绕上图小程序的启动流程, 我们可以从加载、渲染两个纬度进行切入:
提升体验最直接的方法是控制小程序包的大小,常见手段有如下:
代码包的体积压缩可以通过勾选开发者工具中“上传代码时,压缩代码”选项
及时清理无用的代码和资源文件
减少资源包中的图片等资源的数量和大小(理论上除了小icon,其他图片资源从网络下载),图片资源压缩率有限
并且可以采取分包加载的操作,将用户访问率高的页面放在主包里,将访问率低的页面放入子包里,按需加载
当用户点击到子包的目录时,还是有一个代码包下载的过程,这会感觉到明显的卡顿,所以子包也不建议拆的太大,当然我们可以采用子包预加载技术,并不需要等到用户点击到子包页面后在下载子包
关于微信小程序首屏渲染优化的手段如下:
在微信小程序中,提高页面的多次渲染效率主要在于正确使用setData
:
setData
来设置这些数据除此之外,对于一些独立的模块我们尽可能抽离出来,这是因为自定义组件的更新并不会影响页面上其他元素的更新
各个组件也将具有各自独立的逻辑空间。每个组件都分别拥有自己的独立的数据、setData
调用
「小程序启动加载性能」:
「小程序渲染性能」: