【技术实现步骤摘要】
一种页面首屏时间确定方法及装置
本专利技术实施例涉及互联网
,具体涉及一种页面首屏时间确定方法及装置。
技术介绍
页面性能是衡量用户上网体验的一个重要因素,其中首屏时间是反应页面性能的一个重要指标,是用户能直接感知到的时间点。目前,世面上大多数确定首屏时间的方法都采用浏览器自带的performanceAPI来计算。然而对于单页面Web,由于数据的异步返回,js(JavaScript)的异步加载,使得performanceAPI的时间默认entry已经不能满足需求。除了上述方法外,还可以通过自定义打点为页面元素添加时间戳,根据页面元素的时间戳计算加载耗时,进而确定首屏时间,但是这样的方法会造成性能模块和业务模块紧耦合,不利于SPA(singlepageapplication单页面应用)的扩展和维护。
技术实现思路
为了解决上述技术问题或者至少部分地解决上述技术问题,本专利技术实施例提供了一种页面首屏时间确定方法、装置、计算机设备及存储介质。有鉴于此,第一方面,本专利技术实施例提 ...
【技术保护点】
1.一种页面首屏时间确定方法,其特征在于,包括:/n在接收到服务器根据页面请求返回的页面文档时,触发监听,所述监听用于在每次浏览器重绘前检测所述页面文档的根页面元素和所有子页面元素下是否有新增的直接子节点;/n确定有新增的直接子节点的根页面元素和子页面元素为候选页面元素;/n计算所述候选页面元素的加载时长,并保存;/n根据所述候选页面元素中新增的节点的个数和层级数,计算所述候选页面元素的分数,并保存;/n判断所述监听是否结束;/n若所述监听结束,确定分数最高的候选页面元素对应的加载时长为页面首屏时间。/n
【技术特征摘要】
1.一种页面首屏时间确定方法,其特征在于,包括:
在接收到服务器根据页面请求返回的页面文档时,触发监听,所述监听用于在每次浏览器重绘前检测所述页面文档的根页面元素和所有子页面元素下是否有新增的直接子节点;
确定有新增的直接子节点的根页面元素和子页面元素为候选页面元素;
计算所述候选页面元素的加载时长,并保存;
根据所述候选页面元素中新增的节点的个数和层级数,计算所述候选页面元素的分数,并保存;
判断所述监听是否结束;
若所述监听结束,确定分数最高的候选页面元素对应的加载时长为页面首屏时间。
2.根据权利要求1所述的页面首屏时间确定方法,其特征在于,计算所述候选页面元素的加载时长,包括:
获取检测到所述候选页面元素有新增的直接子节点的时刻作为第一时刻;
获取发送所述页面请求的时刻作为第二时刻;
将所述第一时刻与所述第二时刻的差值,作为所述候选页面元素的加载时长。
3.根据权利要求1所述的页面首屏时间确定方法,其特征在于,根据所述候选页面元素中新增的节点的个数和层级数,计算所述候选页面元素的分数,包括:
采用预设的节点分数计算方法,计算所述候选页面元素中新增根节点的分数,其中,所述新增根节点为所述候选页面元素中新增的所在层级数最低的节点;
按照从所述新增根节点到叶子结点的顺序进行遍历,判断所述候选页面元素中的新增节点是否可见,其中,所述叶子结点为所述候选页面元素中新增的所在层级数最高的节点;
若该新增节点可见,则采用所述预设的节点分数计算方法,计算该新增节点的直接子节点的分数;
若该新增节点不可见,则不计算该新增节点的子节点的分数;
将所述候选页面元素中计算得到的所有分数求和得到所述候选页面元素的分数。
4.根据权利要求3所述的页面首屏时间确定方法,其特征在于,所述预设的节点分数计算方法,包括:
获取待计算节点的直接子节点个数,所述待计算节点为需要计算分数的节点;
确定所述待计算节点的层级数;
根据所述待计算节点的直接子节点个数和层级数按下式计算所述待计算节点的分数:
待计算节点的分数=待计算节点的直接子节点个数*层级数。
5.根据权利要求1所述的页面首屏时间确定方法,其特征在于,判断所述监听是否结束,包括:
获取当前时刻和触发监听的时刻,根据所述当前时刻和所述触发监听的时刻,确定所述监听的时长,判断所述监听的时长是否小于第一预设时长,若所述监听的时长不小于所述第一预设时长,则确定所述监听结束;
或
判断第二预设时长内,所述监听是否监测到有新增的直接子节点的根页面元素或子页面元素,若没有监测到,则确定所述监听结束,若监测到,则确定所述监听没有结束。
6.根据权利要求1所述的页面首屏时间确定方法,其特征在于,所述方法还包括:
将所述页面首屏时间发送至服务器。
7.一种页面首屏时间确定装置,其特征在于,包括:
监听触发模块,用于在...
【专利技术属性】
技术研发人员:王睿宇,程启健,任翔宇,李明忠,
申请(专利权)人:北京奇艺世纪科技有限公司,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。