在进行启动优化之前,我们先介绍一下小程序的启动过程。了解小程序的启动流程,可以帮助开发者更有针对性地选择性能优化的手段,分析性能优化的效果。
本文的启动流程以安卓和 iOS 为准,其他平台可能会略有差异。
小程序启动过程主要包括以下几个环节:
小程序启动的各流程不是串行的,会尽可能的并行。计算耗时不能简单加和。
小程序启动的各流程不是每次启动都完整进行的,会尽可能的利用缓存。
「首页渲染」完成后,小程序启动流程完成,Loading 消失,此时一般情况下用户应该能立刻看到首屏内容。
但是如果首页的主体内容依赖网络请求(例如 wx.request
)等异步来源,用户并不一定能立刻看的有意义的完整界面,可能看到的仍然是白屏界面。需要等待网络请求异步返回后,调用 setData 进行页面更新,才能呈现真正的页面。
通常情况下,开发者也会选择先展示「骨架屏」来避免白屏,以优化用户体验。
# 对启动耗时的影响
异步 setData 触发绘制的首屏内容展示不一定会计入启动耗时统计,但是会延迟用户看到页面内容的时间,影响用户体验。