第一句子网 - 唯美句子、句子迷、好句子大全
第一句子网 > 页面首次加载时间确定方法 装置 电子设备及存储介质与流程

页面首次加载时间确定方法 装置 电子设备及存储介质与流程

时间:2020-12-20 16:36:21

相关推荐

页面首次加载时间确定方法 装置 电子设备及存储介质与流程

本发明实施例涉及计算机技术领域,尤其涉及一种页面首次加载时间确定方法、装置、电子设备及存储介质。

背景技术:

页面的加载时间可以为优化页面运行提供重要依据,用户第一次访问页面时,会从服务端下载页面中的所有资源;当用户再次使用同一浏览器访问页面的时候,由于浏览器的缓存机制,会有一些资源从缓存中获取,而避免了部分网络请求,页面加载的时间,会小于第一次页面访问的时间。

目前对页面加载时间的监测,均是在单位时间内统计页面所有次访问的加载的整体时间,计算平均值作为页面的加载时间,并作为评估页面性能的指标。但是这种方法虽然能反映用户访问页面的整体性能趋势,但是对于某些页面,其首次访问时间较长,后续访问利用缓存时,整体性能较好,此时计算的平均值,并不能客观的反映出页面的真实性能。相关技术中,通过计算页面首次访问时间最能反映页面性能,从而正确判断页面首次访问时间非常重要。

技术实现要素:

本发明提供一种页面首次加载时间确定方法、装置、电子设备及存储介质,可以正确判断页面首次访问时间,从而直观的分析页面性能,为优化网站性能提供参考和理论依据。

第一方面,本发明实施例提供了一种页面首次加载时间确定方法,包括:

当监测到页面加载完成时,确定页面加载时间;

获取页面加载的所有资源,判断所有资源中是否有来自于缓存中的资源;

若否,将所述页面加载时间作为页面首次访问时间。

第二方面,本发明实施例还提供了一种页面首次加载时间确定装置,包括:

加载时间确定模块,用于当监测到页面加载完成时,确定页面加载时间;

判断模块,用于获取页面加载的所有资源,判断所有资源中是否有来自于缓存中的资源;

首次访问时间确定模块,用于若否,将所述页面加载时间作为页面首次访问时间。

第三方面,本发明实施例提供了一种电子设备,包括:

一个或多个处理器;

存储器,用于存储一个或多个程序,

当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明实施例提供的一种页面首次加载时间确定方法。

第四方面,本发明实施例提供的一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本发明实施例提供的一种页面首次加载时间确定方法。

本发明实施例提供的技术方案,通过获取页面加载的所有资源,当判断页面中的资源不是来自于缓存中的资源时,将页面加载时间作为页面首次访问时间,可以正确判断页面首次访问时间,从而直观的分析页面性能,为优化网站性能提供参考和理论依据。

附图说明

图1是本发明实施例提供的一种页面首次加载时间确定方法流程图;

图2a是本发明实施例提供的一种页面首次加载时间确定方法流程图;

图2b是本发明实施例提供的一种页面首次加载时间确定方法流程图;

图3是本发明实施例提供的一种页面首次加载时间确定装置结构框图;

图4是本发明实施例提供的一种电子设备的结构示意图。

具体实施方式

下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。

图1是本发明实施例提供的一种页面首次加载时间确定方法流程图,所述方法可以由页面首次加载时间确定装置来执行,所述装置可以由软件和/或硬件来实现,所述装置可以配置在计算机、智能手机、平板电脑等电子设备中。所述方法可以应用于用户访问页面的场景中,可选的,所述方法可以应用于开发人员对页面进行测试的场景中。

如图1所示,本发明实施例提供的技术方案包括:

s110:当监测到页面加载完成时,确定页面加载时间。

在本发明实施例中,页面加载时间可以是页面启动到页面中所有资源加载完毕所用的时间。其中,页面时间的监测可以通过相关技术中的多种方法,例如可以通过探针进行监测,或者通过采用相关的监测脚本进行监测等。可选的,可以调用浏览器中的navigationtimingapi计算页面的加载时间。

在本发明实施例中的一个实施方式中,可选的,所述当监测到页面加载完成时,确定页面加载整体时间,包括:当监测到页面加载完成时,通过调用浏览器中的导航计时接口(navigationtimingapi)确定页面加载时间。其中,navigationtimingapi提供了可用于衡量一个网站性能的数据。与用于相同目的的其他基于javascript的机制不同,该api可以提供可以更有用和更准确的端到端延迟数据,navigationtimingapi可以用于收集客户端性能数据,例如,可以确定页面加载时间、页面卸载时间、域名查找时间等。

在本发明实施例的一个实施方式中,可选的,所述当监测到页面加载完成时,确定页面加载整体时间,包括:当页面加载完成时,触发load事件;当监测到load事件时,通过调用浏览器中的navigationtimingapi确定页面加载时间。其中,load事件的作用可以监控页面中资源是否加载完毕,所有资源加载完毕后可以触发load事件。

s120:获取页面加载的所有资源,判断所有资源中是否有来自于缓存中的资源。

在本发明实施例中,页面中可以包含多条资源,资源可以包括图片文件、视频文件等。当用户第一次访问页面时,会从服务端下载页面中的所有资源,可以将部分资源进行缓存。当用户再次使用同一浏览器访问页面的时候,由于浏览器的缓存机制,会有一些资源从缓存中获取,而避免了部分网络请求。当加载页面完成时,需要判断页面中的资源是否来自于缓存。

在本发明实施例的一个实施方式中,所述获取页面加载的所有资源,判断所有资源中是否有来自于缓存中的资源,包括:通过调用浏览器中的资源计时接口(resourcetimingapi)获取页面加载的所有资源,判断所有资源中是否有来自于缓存中的资源。其中,resourcetimingapi,可以对单个资源进行计时,可以对细粒度的用户体验进行检测。具体的,浏览器获取网页时,会对网页中每一个资源(脚本文件、样式表、图片文件等等)发出一个http请求。resourcetimingapi可以获取到单个资源从开始发出请求到获取响应之间各个阶段的时间。其中,通过resourcetimingapi还可以获取页面加载的所有资源,对所有资源进行判断。

在本发明实施例的一个实施方案中,可选的,所述判断所有资源中是否有来自于缓存中的资源,可以包括:判断资源对应的记录信息是否存在dns查找信息;判断资源对应的记录信息中是否存在建立连接的信息;判断所述资源对应的记录信息中是否存在下载信息。其中,每一条资源有对应的记录信息,可以通过记录信息查看是否存在域名系统(dns)查找信息、下载信息以及建立连接的信息,来确定资源是否来自于缓存。

具体的,当资源对应的记录信息中的存在dns查找信息、建立连接的信息以及下载信息中的至少一项时,可以判断资源不是来自于缓存;当资源对应的记录信息中不存在dns查找信息、建立连接的信息以及下载信息时,可以判断资源来源于缓存。

当记录信息中存在dns查找信息时,可以判断对应的资源来自于其他服务器,从而可以判断资源不是来自于缓存。当资源对应的记录信息中存在建立连接的信息时,可以判断资源的获取需要建立网络连接,从而可以判断资源不是来自于缓存。当资源对应的记录信息中存在资源的下载信息时,可以判断资源是下载的资源,从而可以判断资源不是来自于缓存。当资源对应的记录信息中不存在dns查找信息、建立连接的信息以及下载信息三项信息时,可以判断资源来源于缓存。

s130:若否,将所述页面加载时间作为页面首次访问时间。

在本发明实施例中,若页面中的所有资源没有来自于缓存中的资源,将页面加载的时间作为页面首次访问时间。若判断页面中的所有资源有来自于缓存中的资源,判断本次页面访问是非首次访问,将非首次访问页面的其他性能数据进行上报。其中,非首次访问页面的其他性能可以是本次访问页面的非首次的标识信息,以及访问访问过程中的各个环节的性能数据等。

由此,通过判断页面中的资源是否来源于缓存中的资源,判断页面访问是否是首次访问,从而确定页面首次访问时间,通过页面首次访问时间可以直观的分析展示页面性能,为优化网站性能提供参考和理论依据。

在上述实施例的基础上,本发明实施例提供的技术方案还包括:基于所述页面加载时间对页面进行优化。具体的,可以基于页面加载时间优化页面性能等。当页面加载时间过长时,可以优化页面代码,以使优化页面加载过程,从而优化页面性能。

本发明实施例提供的技术方案,通过获取页面加载的所有资源,当判断页面中的资源不是来自于缓存中的资源时,将页面加载时间作为页面首次访问时间,可以正确判断页面首次访问时间,从而直观的分析页面性能,为优化网站性能提供参考和理论依据。

图2a是本发明实施例提供的一种页面首次访问时间确定方法流程图,在本实施例中,浏览器客户端中集成有navigationtimingapi及resourcetimingapi。

如图2a所示,本发明实施例提供的技术方案包括:

s210:若访问目标页面集成有browser产品,当页面加载完成时,触发load事件,通过调用浏览器中的navigationtimingapi确定页面加载时间。

s220:通过调用浏览器中的资源计时接口resourcetimingapi获取页面加载的所有资源,判断所有资源中是否有来自于缓存中的资源。

若否,执行s230。若是,执行s240。

s230:将所述页面加载时间作为页面首次访问时间。

s240:判断本次页面访问是非首次访问,将非首次访问页面的信息进行上报。

本发明实施例提供的技术方案还可以参考图2b。如图2b所示,本发明实施例提供的流程可以包括:开始,页面加载完成,load事件触发;当支持navigationtimingapi时,确定页面加载的整体时间,整体时间可以等于加载开始时间与导航开始时间之间的差值,即(整体时间=loadeventstart-navigationstart)。当支持resourcetimingapi时,获取所有资源,遍历资源,判断资源是否从缓存中获取,若是,判断本次页面访问非首次访问,不计算页面首次访问时间,将页面访问的其他性能数据进行上报,若否,首次访问时间等于页面加载整体时间,同页面访问的其他性能数据一同上报。其中,可以通过资源对应的记录信息判断资源是否从缓存中获取。例如,资源对应的记录信息可以是:1、domainlookupstart===domainlookupend===connenctstart===connenctend===fetchstart!==0;2、transfersize===0||requesstart=responsestart。

由此,通过获取页面加载的所有资源,当判断页面中的资源不是从缓存中获取时,将页面加载时间作为页面首次访问时间,可以正确判断页面首次访问时间,从而直观的分析页面性能,为优化网站性能提供参考和理论依据。

图3是本发明实施例提供的一种页面首次加载时间确定装置结构框图,如图3所示,本发明实施例提供的装置包括:加载时间确定模块310、判断模块320和首次访问时间确定模块330。

其中,加载时间确定模块310,当监测到页面加载完成时,确定页面加载时间;

判断模块320,获取页面加载的所有资源,判断所有资源中是否有来自于缓存中的资源;

首次访问时间确定模块330,用于若否,将所述页面加载时间作为页面首次访问时间。

可选的,加载时间确定模块310,用于通过调用浏览器中的资源计时接口resourcetimingapi获取页面加载的所有资源,判断所有资源中是否有来自于缓存中的资源。

可选的,判断模块320,用于判断资源对应的记录信息是否存在dns查找信息;或者,

判断资源对应的记录信息中是否存在建立连接的信息;或者,

判断所述资源对应的记录信息中是否存在下载信息。

可选的,加载时间确定模块310,用于当监测到页面加载完成时,通过调用浏览器中的导航计时接口navigationtimingapi确定页面加载时间。

可选的,加载时间确定模块310,用于当页面加载完成时,触发load事件;

当监测到load事件时,通过调用浏览器中的navigationtimingapi确定页面加载时间。

可选的,所述装置还包括优化模块,用于基于所述页面加载时间对页面进行优化。

可选的,所述装置还包括上报模块,用于若判断所述资源不是缓存中的资源,判断本次页面访问是非首次访问,将非首次访问页面的信息进行上报。

上述装置可执行本发明任意实施例所提供的方法,具备执行方法相应的功能模块和有益效果。

图4是本发明实施例提供的一种电子设备结构示意图,如图4所示,该设备包括:

一个或多个处理器410,图4中以一个处理器410为例;

存储器420;

所述设备还可以包括:输入装置430和输出装置440。

所述设备中的处理器410、存储器420、输入装置430和输出装置440可以通过总线或者其他方式连接,图4中以通过总线连接为例。

存储器420作为一种非暂态计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的一种页面首次加载时间确定方法对应的程序指令/模块(例如,附图3所示的加载时间确定模块310、判断模块320和首次访问时间确定模块330)。处理器410通过运行存储在存储器420中的软件程序、指令以及模块,从而执行计算机设备的各种功能应用以及数据处理,即实现上述方法实施例的一种页面首次加载时间确定方法,即:

当监测到页面加载完成时,确定页面加载时间;

获取页面加载的所有资源,判断所有资源中是否有来自于缓存中的资源;

若否,将所述页面加载时间作为页面首次访问时间。

存储器420可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据计算机设备的使用所创建的数据等。此外,存储器420可以包括高速随机存取存储器,还可以包括非暂态性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态性固态存储器件。在一些实施例中,存储器420可选包括相对于处理器410远程设置的存储器,这些远程存储器可以通过网络连接至终端设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

输入装置430可用于接收输入的数字或字符信息,以及产生与计算机设备的用户设置以及功能控制有关的键信号输入。输出装置440可包括显示屏等显示设备。

本发明实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明实施例提供的一种页面首次加载时间确定方法:

当监测到页面加载完成时,确定页面加载时间;

获取页面加载的所有资源,判断所有资源中是否有来自于缓存中的资源;

若否,将所述页面加载时间作为页面首次访问时间:

可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。

计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。

计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、电线、光缆、rf等等,或者上述的任意合适的组合。

可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如java、smalltalk、c++,还包括常规的过程式程序设计语言—诸如”c”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(lan)或广域网(wan)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。

注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

技术特征:

1.一种页面首次加载时间确定方法,其特征在于,包括:

当监测到页面加载完成时,确定页面加载时间;

获取页面加载的所有资源,判断所有资源中是否有来自于缓存中的资源;

若否,将所述页面加载时间作为页面首次访问时间。

2.根据权利要求1所述的方法,其特征在于,所述获取页面加载的所有资源,判断所有资源中是否有来自于缓存中的资源,包括:

通过调用浏览器中的资源计时接口resourcetimingapi获取页面加载的所有资源,判断所有资源中是否有来自于缓存中的资源。

3.根据权利要求1所述的方法,其特征在于,所述判断所有资源中是否有来自于缓存中的资源,包括:

判断资源对应的记录信息是否存在域名系统dns查找信息;

判断资源对应的记录信息中是否存在建立连接的信息;

判断所述资源对应的记录信息中是否存在下载信息。

4.根据权利要求1所述的方法,其特征在于,所述当监测到页面加载完成时,确定页面加载时间,包括:

当监测到页面加载完成时,通过调用浏览器中的导航计时接口navigationtimingapi确定页面加载时间。

5.根据权利要求1所述的方法,其特征在于,所述当监测到页面加载完成时,确定页面加载时间,包括:

当页面加载完成时,触发load事件;

当监测到load事件时,通过调用浏览器中的navigationtimingapi确定页面加载时间。

6.根据权利要求1所述的方法,其特征在于,还包括:

基于所述页面加载时间对页面进行优化。

7.根据权利要求1所述的方法,其特征在于,还包括:

若判断所有资源中有来自于缓存中的资源,判断本次页面访问是非首次访问,将非首次访问页面的其他性能数据进行上报。

8.一种页面首次加载时间确定装置,其特征在于,包括:

加载时间确定模块,用于当监测到页面加载完成时,确定页面加载时间;

判断模块,用于获取页面加载的所有资源,判断所有资源中是否有来自于缓存中的资源;

首次访问时间确定模块,用于若否,将所述页面加载时间作为页面首次访问时间。

9.一种电子设备,其特征在于,包括:

一个或多个处理器;

存储器,用于存储一个或多个程序,

当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-7任一项所述的一种页面首次加载时间确定方法。

10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-7任一项所述的一种页面首次加载时间确定方法。

技术总结

本发明实施例公开了一种页面首次加载时间确定方法、装置、电子设备及存储介质,其中,该方法包括:当监测到页面加载完成时,确定页面加载时间;获取页面加载的所有资源,判断所有资源中是否有来自于缓存中的资源;若否,将所述页面加载时间作为页面首次访问时间。本发明实施例提供的技术方案可以正确判断页面首次访问时间,从而直观的分析页面性能,为优化网站性能提供参考和理论依据。

技术研发人员:覃煜;王聪

受保护的技术使用者:北京博睿宏远数据科技股份有限公司

技术研发日:.11.01

技术公布日:.02.21

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。