通过打日志查看,在打开一个页面,并且页面首次渲染完成时:页面生命周期钩子(onLoad, onShow, onReady)都触发完后,通过 PerformanceObserver 监听方式的回调才触发。即,数据可采集的顺序为:
- page.onLoad
- page.onShow
- page.onReady
- performance 的 route
- performance 的 evaluateScript
- performance 的 firstRender
疑问:
- performance 的evaluateScript 代码注入阶段(记为A)、page.onReady 首次渲染完成(记为B),实际发生顺序是 A ➜ B,但真实数据获可采集顺序却是 B ➜ A,这个是什么原因?
- 两者可采集顺序是固定的吗?
PerformanceObserver 的监听会有延迟,不保证和生命周期有时序关系
页面的生命周期和可采集顺序都是确定的:onLoad ➜ onShow ➜ onReady.
那么,PerformanceObserver 的监听中,route、evaluateScript、firstRender 这三者,有类似的先后顺序吗?如果有,是怎么样的?