小组件启动是小组件用户体验中极为重要的一环,启动耗时过长会造成小组件用户流失,影响用户体验。
本章节的「启动」特指小组件冷启动,不包括小组件后台切前台的热启动。关于冷/热启动的定义,请参考小组件运行机制
小组件的启动过程以「用户打开小组件」为起点,到小组件「首页渲染完成」为止。
「用户打开小组件」可能是由用户点击访问触发,也可能通过扫码、小组件跳小组件或 APP 打开小组件等入口触发。从扫码、APP 等场景打开小组件时,可能会有前置的跳转和校验流程,不包含在小组件启动流程的讨论范围之内。
小组件「首页渲染完成」的标志是首个页面 Page.onReady 事件触发。由于启动流程的差异,小组件定义的「首页渲染完成」不等同于浏览器的 DOMContentLoaded 或 load 事件。
小组件「首页渲染完成」次数与「小组件启动」次数的比值也被称为(PV)打开率或(PV)到达率。与之对应的 流失率 = 1 - 打开率。
打开率受到下列因素影响:
在小组件启动流程中,代码包准备、小组件代码注入和首页渲染的耗时是与小组件本身相关的,开发者可以进行一定的优化工作。其他部分的耗时由小组件框架侧负责进行持续的优化。
开发者可以从以下方面着手进行启动性能的优化: