页面加载时长的检测方法、装置、设备和存储介质与流程

文档序号:18797378发布日期:2019-09-29 19:54阅读:201来源:国知局
本发明涉及移动互联网
技术领域
:,具体而言,本发明涉及一种页面加载时长的检测方法、装置、设备和存储介质。
背景技术
::随着计算机以及移动终端技术的不断发展,越来越多的电子设备,如手机、平板、电脑、智能手表等极大地丰富着人们的生活。用户对电子产品的体验要求也变得越来越高。其中,对于电子设备的操作系统来说,页面加载时长是用户体验中较为重要的一项指标。例如,在ios(一种移动操作系统)应用性能管理指标中,开发者一般需要检测应用页面的加载时长进行性能评估,从而达到优化体验的目的。现有的页面加载时长的监控方法主要是通过埋点监控的方式进行,即通过在viewdidload方法中埋点,统计该点到viewdidappear加载完成的时间,通过两者的时间差来判定页面加载的时长。而ios中的网络请求通常都是异步请求,加载的页面在异步网络请求的延迟之后才能显示,难以准确检测到页面真实的加载时长。技术实现要素:本发明实施例的目的旨在至少解决上述技术缺陷之一,特别是在ios系统难以准确检测页面的加载时长的问题。本发明实施例提供了一种页面加载时长的检测方法、装置、设备和存储介质。第一方面,本发明实施例提供了一种页面加载时长的检测方法,包括以下步骤:在页面加载时,记录加载开始时间并启动定时器;当所述页面上出现预配置的参照物时,停止所述定时器;读取所述定时器停止工作时的当前时间,根据所述当前时间与所述加载开始时间的差值,确定所述页面的加载时长。在一实施例中,页面加载时长的检测方法还包括:在页面加载前,从配置后台拉取配置列表并进行缓存;其中,所述配置列表记录有指定检测页面和所述指定检测页面的参照物;在页面加载时,判断当前打开页面是否为所述指定检测页面,若是,启动所述定时器。在一实施例中,所述参照物为web页面;所述当所述页面上出现预配置的参照物时,停止所述定时器的步骤,包括:在所述web页面内预配置的网页元素全部出现时,停止所述定时器。在一实施例中,所述参照物为table页面;所述当所述页面上出现预配置的参照物时,停止所述定时器的步骤,包括:在所述table页面内预配置的单元格元素出现时,停止所述定时器。在一实施例中,所述在页面加载时,记录加载开始时间并启动定时器的步骤,包括:在启动页面加载时,在viewdidload方法中保存所述加载开始时间,并同时启动定时器进行计时。在一实施例中,所述在页面加载时,判断当前打开页面是否为所述指定检测页面,若是,启动所述定时器的步骤,包括:在页面加载时,获取当前打开页面,在配置列表中寻找是否存在所述当前打开页面;若存在,则确定所述当前打开页面为所述指定检测页面,启动所述定时器,反之,则不启动定时器。在一实施例中,所述确定所述页面的加载时长的步骤之后,还包括:获取所述当前打开页面;建立所述当前打开页面与加载时长的关联关系,将所述关联关系存储在指定目录下。在一实施例中,页面加载时长的检测方法还包括:通过所述关联关系查找所述指定检测页面的加载时长,所述加载时长用于确定所述指定检测页面的加载性能。第二方面,本发明实施例还提供了一种页面加载时长的检测装置,包括:加载开始记录模块,用于在页面加载时,记录加载开始时间并启动定时器;加载结束记录模块,用于当所述页面上出现预配置的参照物时,停止所述定时器;加载时长计算模块,用于读取所述定时器停止工作时的当前时间,根据所述当前时间与所述加载开始时间的差值,确定所述页面的加载时长。第三方面,本发明实施例还提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如第一方面任一项所述的页面加载时长的检测方法。第四方面,本发明实施例还提供了一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行如第一方面任一项所述的页面加载时长的检测方法。上述实施例提供的一种页面加载时长的检测方法、装置、设备和存储介质,通过在页面加载时,记录加载开始时间并启动定时器;当页面上出现预配置的参照物时停止所述定时器;利用定时器停止工作时的当前时间与加载开始时间的差值,确定页面的加载时长。本方案为页面配置参照物,通过检测参照物来精准定位页面的加载结束时间,彻底解决了操作系统中异步网络请求所导致难以确定页面加载结束的真正时刻造成的检测加载时长不准确的问题,从而提高了页面加载时长检测的准确性。同时,通过检测参照物精准定位页面的加载结束时间,无需在业务中进行埋点监控,实现解耦和无侵入检测的技术效果。此外,本方案进一步通过在设置配置列表,将指定检测页面和参照物保存在配置列表中,仅在当前打开页面为指配置列表的指定检测页面才启动页面加载时长检测,也避免了传统技术中全量检测带来的监控资源浪费。本发明附加的方面和优点将在下面的描述中部分给出,这些将从下面的描述中变得明显,或通过本发明的实践了解到。附图说明本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:图1是一实施例提供的页面加载时长的检测方法的流程图;图2是一实施例提供的页面加载时长的检测方法的另一流程图;图3是一实施例提供的步骤s100的详细流程图;图4是一实施例提供的页面加载时长的检测方法的再一流程图;图5是一实施例提供的页面加载时长的检测装置的结构示意图。具体实施方式下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。本
技术领域
:技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。本
技术领域
:技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。图1是一实施例提供的页面加载时长的检测方法的流程图。本实施例中的页面加载时长的检测方法可以应用于多种操作系统,在本实施例中以ios操作系统为例进行说明。如图1所示,该页面加载时长的检测方法包括以下步骤:s110、在页面加载时,记录加载开始时间并启动定时器。在页面加载时,记录页面加载开始时间,在具体实施中,可以将页面加载开始时调用某一具体函数或方法,或触发某一事件的时间确定为加载开始时间,也可以将加载页面的第一个元素的时间确定为加载开始时间。在本实施例中,采用全局变量来记录加载开始时间,全局变量既可以是某对象函数创建,也可以是在本程序任何地方创建;全局变量是可以被本程序所有对象或函数引用,如被某一具体函数viewdidload方法引用。被viewdidload方法引用的全局变量记录该调用的时间点,作为加载开始时间点。确定页面开始加载时,自动启动定时器。定时器用于延迟执行或重复执行某个方法;例如在ios操作系统中,定时器可以包括:nstimer、cadisplaylink、gcd等;在页面加载时,自动启动定时器开始计时。s120、当所述页面上出现预配置的参照物时,停止所述定时器。在本实施例中,参照物(view)用于标记页面已经显示或加载完成。当页面上出现预配置的参照物时,则说明页面加载结束。定时器不停重复地在页面的view层级结构中查找是否有参照物,找到参照物之后判断该参照物是否加载或显示,一旦发现加载完成,停止定时器,其中,参照物可以是页面上的任意界面元素。由于不同页面的类型可能存在差异,其对应的界面元素也存在差异。为了便于检测不同页面的加载时长,在不同的页面配置相对应的界面元素作为参照物,当检测某一具体页面时,对应的界面元素出现,则说明该具体页面已经加载结束,停止定时器。s130、读取所述定时器停止工作时的当前时间,根据所述当前时间与所述加载开始时间的差值,确定所述页面的加载时长。在本实施例中,页面开始加载时,通过全局变量记录加载时间,并启动定时器在页面上查找是否出现参照物,当页面出现参照物,页面加载结束,停止定时器,将定时器停止工作时的当前时间作为加载结束时间。通过读取定时器停止工作的当前时间,获取到页面加载结束的相对时间点;并将页面加载结束的相对时间点与页面加载开始时间作比较,计算得到页面的加载时长。本实施例提供的页面加载时长的检测方法,通过在页面加载时,记录加载开始时间并启动定时器,当页面上出现预配置的参照物时,停止定时器,读取定时器停止工作的当前时间作为加载结束时间,根据加载结束时间与加载开始时间的差值,确定页面的加载时长,解决了操作系统中异步网络请求所导致难以确定页面加载结束的真正时刻,导致加载时长的检测不准确的问题,本实施例的方案通过为页面配置参照物,在出现参照物时则确定页面加载结束,从而提高了页面加载时长检测结果的准确性。参考图2,图2是一实施例提供的页面加载时长的检测方法的另一流程图,在一实施例中,在进行页面加载之前,该页面加载时长的检测方法还包括:s100、获取配置列表,根据配置列表判断当前打开页面是否为指定检测页面。在本实施例中,在后台配置好的需要检测的指检测页面和指定检测页面的参照物,形成一个配置列表,并以数据结构的形式存储指检测页面和指定检测页面的参照物。在每一次启动应用程序(application,app),都会从后台拉取该配置列表。图3是一实施例提供的步骤s100的详细流程图,如图3所示,对于步骤s100,其具体可以包括以下步骤:s1001、在页面加载前,从配置后台拉取配置列表并进行缓存。其中,配置列表记录有需要检测的指定检测页面和指定检测页面的参照物。为了提高页面加载时长检测的灵活性,选择性地对某个或某些页面的加载时长进行监控,可以在配置后台预先配置需要检测的指定检测页面和指定检测页面的参照物。在本实施例中,将指定检测页面的名称和其参照物类型保存在配置列表中,完成对指定检测页面的预先配置。在页面加载前,从配置后台中拉取配置列表,并对配置列表进行缓存。s1002、在页面加载时,判断当前打开页面是否为所述指定检测页面,若是,启动所述定时器。在页面加载时,判断当前打开页面是否为指定检测页面,若是,则启动定时器,开始页面加载时长检测,若否,则不启动定时器,不对当前打开页面的加载时长进行检测。区别于对页面进行全量检测方案造成的对一些性能指标要求不高的页面也进行加载时长的检测导致的监控资源浪费,本实施例的方案能够节省资源,提高页面性能检测的效率。进一步的,在一实施例中,步骤s1002中的判断当前打开页面是否为指定检测页面可以包括:s201、在页面加载时,获取当前打开页面。为了区别于不同的页面,可以为每个页面设定唯一的标识,如名称、编号、关键字等;同理,配置列表记录有指定检测页面所对应的标识。s202、在配置列表中寻找是否存在所述当前打开页面;若是,执行s203,否则执行s204。在本实施例中,通过指定检测页面的标识在配置列表中寻找是否存在当前打开页面的标识,将当前打开页面的标识与配置列表中的各指定检测页面名称进行比较。示例性的,当页面加载开始并启动定时器后,每隔很短的设定时间,如屏幕刷新率同步的频率所对应时间,在viewdidload方法中获取当前打开页面,并得到当前打开页面的名称,如界面a,在配置列表中查找是否有与当前打开页面相同的名称,即界面a。s203、确定所述当前打开页面为所述指定检测页面,启动所述定时器。若配置列表中存在当前打开页面,说明当前打开页面为配置列表中的指定检测页面,需要检测页面的加载时长,此时启动定时器,开始检测页面加载时长的计时。示例性的,当前打开页面的名称为界面a,在配置列表中查找到同样的名称,则说明当前打开页面为指定检测页面。s204、不启动定时器。若配置列表中不存在当前打开页面,说明当前打开页面不是配置列表中指定检测页面,不需要测试页面的加载时长,不启动定时器。为了使本发明的技术方案更为清晰,更为便于理解,下面进一步对本技术方案中的各个步骤的具体的实现过程和方式加以详细的描述。由于参照物的类型不同,判断页面是否已经加载结束的条件也不同。本实施例中,当页面上出现预配置的参照物时,说明页面加载完成;例如参照物的类型可以为web页面(webview)或table页面(tableview)。不同的类型的参照物,其主要的界面元素不同,如在web页面,其主要界面元素为网页元素,在table页面,其主要界面元素为tableview列表。在一实施例中,如果参照物为web页面;则步骤s120的当所述页面上出现预配置的参照物时,停止所述定时器的步骤,可以如下包括:检测在web页面内预配置的网页元素,当web页面内预配置的网页元素全部出现时,停止定时器。可选的,可以设定web页面的最后一个网页元素作为参照物,当最后一个网页元素出现时,判读页面加载结束;如当前打开web页面的最后一个网页元素为一个按钮,则将该按钮作为参照物,当该按钮出现时,则停止定时器。需要说明该的是,在ios系统中webview是加载h5网页资源的控件,它自带一个加载结束的方法,由于该方法在webview的加载完成的回调方法中进行埋点检测,需要深入到业务中的webview中去,所以会导致对业务进行侵入;而本实施例提供的方案,在webview的网页元素全部显示时作为加载结束的条件,避免了业务侵入的风险,实现无侵入检测。在其他实施例中,还可以用以下方法判断web页面已经加载完成,如当webviewdidfinishload方法被调用判定web页面加载完成,或当ondocumentcomplete事件触发判定该页面加载完成。在一实施例中,如果参照物为table页面;则步骤s120当页面上出现预配置的参照物时,停止所述定时器的步骤,可以包括:在table页面内预配置的单元格元素出现时,停止所述定时器。在本实施例中,table页面的主要元素为tableview列表,当tableview列表刷新之后,单元格元素出现,当单元格元素出现时判定table页面加载结束,停止定时器。需要说明的是,tableview是用来展示列表的控件,它的显示时机是在网络请求完成获取到数据之后,然后刷新列表来完成显示,同样需要在网络请求完成这个方法里进行埋点来检测,也会深入到业务代码中从而造成耦合,而本实施例提供的技术方案,在table页面的单元格元素出现作为加载结束条件,避免了耦合,实现解耦检测。在一实施例中,步骤s110中在页面加载时,记录加载开始时间并启动定时器,包括以下步骤:s1101、在启动页面加载时,在viewdidload方法中保存所述加载开始时间,并同时启动定时器进行计时。由于viewdidload方法用于初始化,只有当参照物view初始化的时候才被调用。当viewdidload方法被调用时,确定页面加载开始,通过全局变量记录viewdidload方法被调用的时间点作为加载开始时间点,此时通知启动定时器。定时器可以是一种定时器类函数,如cadisplaylink定时器,cadisplaylink定时器在屏幕刷新时调用。在本实施例中,通过启动cadisplaylink定时器,在很极短的时间内,不停在当前打开页面的view层级结构中查找是否有参照物,找到参照物之后就会根据该参照物类型,如一般view、tableview或者webview,根据参照物类型所对应的方式来判断这个参照物是否加载或显示,一旦发现加载完成,就停止定时器。在确定当前打开页面为指定监控页面,启动页面加载时,加载参照物view时调用viewdidload方法,将调用viewdidload方法的时间点确定为页面加载的起始点,记录加载开始时间。本实施例中,在viewdidload方法中通过全局变量保存该加载开始时间。如图4所示,图4是一实施例提供的页面加载时长的检测方法的再一流程图,在一实施例中,在步骤s130确定所述页面的加载时长的步骤之后,还可以包括:步骤s140、建立当前打开页面与加载时长的关联关系。在每一次检测得到加载时长后,建立当前打开页面与加载时长的关联关系,以便于根据关联关系查找出某一具体页面的加载时长。对于步骤s140,其具体可以包括以下步骤:s1401、获取所述当前打开页面;可选的,获取当前打开页面的具有唯一性的标识,如名称、编号、关键字等,也可以是获取当前打开页面的帧图像。s1402、建立所述当前打开页面与加载时长的关联关系,将所述关联关系存储在指定目录下。获取当前打开页面的具有唯一性的标识,在当前打开页面的标识与加载时长之间建立关联关系,如建立当前打开页面的名称与加载时长的关联关系,或建立当前打开页面的编号与加载时长之间的关联关系等,并将关联关系存储在指定的数据库中,以便后续查找使用。为了更加准确地检测页面的加载时长,可以对同一个页面进行多次加载时长的检测,建立同一页面与多个加载时长的关联关系,将同一页面的多个关联关系保存到指定数据库中。可选的,还可以对多个加载时长取平均值,将所得平均值保存起来。继续参考图4,进一步的,在一实施例中,本方案提供的页面加载时长的检测方法还可以包括:步骤s150、通过所述关联关系查找所述指定检测页面的加载时长。其中,加载时长用于确定所述指定检测页面的加载性能。在实施例中,为了便于查询到指定检测页面的加载时长,以改善应用的页面的加载性能,从指定数据库中获取页面与加载时长的关联关系,确定指定检测页面的加载性能。如,可以设定以指定阈值,若该指定检测页面的加载时长大于该设定的指定阈值,则认为该指定检测页面的加载时长较长,则需要提醒开发人员改善该指定检测页面的加载时长。可选的,针对不同应用版本下的指定检测页面,获取指定检测页面与加载时长在不同应用版本下的关联关系,根据关联关系查找该指定检测页面在不同应用版本下的加载时长,得出该指定检测页面在不同应用版本下的加载性能。如,在a应用版本下的指定检测页面的加载时长为t1,在b应用版本下的指定检测页面的加载时长为t2,若t2大于t1,则认为b应用版本的指定检测页面的加载时长较长,则需要提醒开发人员改善该指定检测页面在b应用版本下的加载时长。下面对页面加载时长的检测装置的相关实施例进行详细阐述。图5是一实施例提供的一种页面加载时长的检测装置的结构示意图,如图5所示,该页面加载时长的检测装置包括:加载开始记录模块110、加载结束记录模块120和加载时长计算模块130。其中,加载开始记录模块110,用于在页面加载时,记录加载开始时间并启动定时器;加载结束记录模块120,用于当所述页面上出现预配置的参照物时,停止所述定时器;加载时长计算模块130,用于读取所述定时器停止工作时的当前时间,根据所述当前时间与所述加载开始时间的差值,确定所述页面的加载时长。本实施例提供的页面加载时长的检测装置,通过加载开始记录模块在页面加载时,记录加载开始时间并启动定时器;加载结束记录模块当页面上出现预配置的参照物时,停止定时器;加载时长计算模块读取定时器的当前时间,根据当前时间与加载开始时间的差值,确定页面的加载时长,以解决操作系统中异步网络请求所导致难以确定页面加载结束的真正时刻,异步时间难以检测使得加载时长的检测不准确的问题,通过为页面配置参照物,在出现参照物时则确定页面加载结束,从而提高了页面加载时长检测结果的准确性。在一实施例中,页面加载时长的检测装置还包括配置判断模块,所述配置判断模块,包括:配置列表拉取单元,用于在页面加载前,从配置后台拉取配置列表并进行缓存;其中,所述配置列表记录有指定检测页面和所述指定检测页面的参照物;页面判断单元,用于在页面加载时,判断当前打开页面是否为所述指定检测页面,若是,启动所述定时器。在一实施例中,所述参照物为web页面;加载结束记录模块120用于在所述web页面内预配置的网页元素全部出现时,停止所述定时器。在一实施例中,所述参照物为table页面;加载结束记录模块120用于在所述table页面内预配置的单元格元素出现时,停止所述定时器。在一实施例中,加载开始记录模块110用于在启动页面加载时,在viewdidload方法中保存所述加载开始时间,并同时启动定时器进行计时。在一实施例中,页面判断单元,具体用于:在页面加载时,获取当前打开页面,在配置列表中寻找是否存在所述当前打开页面;若存在,则确定所述当前打开页面为所述指定检测页面,启动所述定时器,反之,则不启动定时器。在一实施例中,页面加载时长的检测装置还包括关联关系建立模块;所述关系建立模块,用于获取所述当前打开页面;建立所述当前打开页面与加载时长的关联关系,将所述关联关系存储在指定目录下。在一实施例中,页面加载时长的检测装置还包括加载时长查找模块;所述加载时长查找模块,用于通过所述关联关系查找所述指定检测页面的加载时长,所述加载时长用于确定所述指定检测页面的加载性能。上述提供的页面加载时长的检测装置执行上述任意实施例提供的页面加载时长的检测方法时,具备相应的功能和有益效果。本发明实施例还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时,实现如上述任一实施例中的页面加载时长的检测方法。上述提供的计算机设备执行上述任一实施例提供的页面加载时长的检测方法时,具有相应的功能和有益效果。本发明实施例还提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行一种页面加载时长的检测方法,包括:在页面加载时,记录加载开始时间并启动定时器;当所述页面上出现预配置的参照物时,停止所述定时器;读取所述定时器的当前时间,根据所述当前时间与所述加载开始时间的差值,确定所述页面的加载时长。当然,本发明实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的页面加载时长的检测方法操作,还可以执行本发明任意实施例所提供的页面加载时长的检测方法中的相关操作,且具备相应的功能和有益效果。通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、闪存(flash)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明任意实施例所述的页面加载时长的检测方法。应该理解的是,虽然附图的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,附图的流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。以上所述仅是本发明的部分实施方式,应当指出,对于本
技术领域
:的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1