优化重点页面
- 在小程序中 a 页面跳转 b 页面这种情况,不会被计算到 fmp 中。fmp 只适用于从小程序外部调起小程序并打开页面的场景(冷启动)。
- 渲染完首屏内容后,系统内核就会打 fmp 的点,不会等到把整个页面都渲染完成再打点,所以提升 fmp 的关键就是想办法尽早先渲染出首屏需要的内容,并延后其他内容的渲染。
整体 fmp 是通过将小程序每个页面的 fmp 值做排序,选取80分位的 fmp 值。我们从开发者平台看到的上屏时长,是通过这种计算方式得出的整体 fmp 值,后续对单页 fmp 的数据,也会开放出来。
- 白屏:是指因为某种原因,页面6s内没有展示内容,则被判为白屏,此时不会被记录到 fmp 中
- 空白页面调起 NA 页:比如进入页面后没有内容渲染,直接调起某些 NA 功能页(如刷脸功能),此时不会被记录到 fmp 中
- 内容超出首屏的页面,按常规手段分析即可,一般优化空间较大
- 内容不足首屏的页面,且页面是直接渲染页面,不需要 setData ,即 fcp 与 fmp 很接近,一般优化空间不大
- webview 嵌套 h5 的页面,fmp 主要以 h5 渲染完成为准,基本没有优化空间
除了前文中提到的各种优化手段外,代码优化中还需要注意:
- 去掉页面渲染过程中没必要的 setTimeout
- 对每次调用结果都不变的同步端能力,缓存其结果,可考虑存在 storage 中