一种客户端页面加载时间的获取方法及装置,电子设备与流程

文档序号:13136927阅读:122来源:国知局
一种客户端页面加载时间的获取方法及装置,电子设备与流程

本申请涉及计算机技术领域,特别是涉及一种客户端页面加载时间的获取方法及装置,电子设备。



背景技术:

页面加载时间是指:页面启动加载到页面所有视图加载完毕的时间。准确了解客户端页面加载时间可以为优化页面运行效率提供重要依据。现有技术中通常将客户端页面启动加载的时间点和页面显示到屏幕的时间点之间的时间差作为该客户端页面的加载时间。现有技术中,通过调用系统提供接口捕获页面启动加载事件和页面显示到屏幕事件,然后,再进一步将捕获到相应事件的系统时间作为相应事件的时间点。但是,现有技术中,页面显示到屏幕事件发生时,通常客户端页面并没有全部显示完成,例如,通常在系统显示完一个页面元素或显示完页面框架或显示完页面的静态数据后,就会产生页面显示到屏幕事件。

可见,现有技术中在计算客户端页面加载时间时,至少存在计算的页面加载时间不准确的缺陷。



技术实现要素:

本申请实施例提供一种客户端页面加载时间的获取方法,解决现有技术中的页面加载时间计算不准确的问题。

为了解决上述问题,第一方面,本申请实施例提供了一种客户端页面加载时间的获取方法,包括:

根据客户端页面加载触发事件,确定所述客户端页面的启动时间点;

获取所述客户端页面包含的显示区域;

对每个所述显示区域进行显示数据加载计时;

将最后完成显示数据加载的显示区域的显示数据加载完成时间点,与所述启动时间点之间的时间差,作为所述客户端页面的加载时间。

第二方面,本申请实施例提供了一种客户端页面加载时间的获取装置,包括:

页面启动时间点确定模块,用于根据客户端页面加载触发事件,确定所述客户端页面的启动时间点;

显示区域获取模块,用于获取所述客户端页面包含的显示区域;

分显示区域加载计时模块,用于对所述显示区域获取模块获取的每个显示区域进行显示数据加载计时;

页面加载时间确定模块,用于将最后完成显示数据加载的显示区域的显示数据加载完成时间点,与所述启动时间点之间的时间差,作为所述客户端页面的加载时间。

第三方面,本申请实施例提供了一种电子设备,包括存储器、处理器及存储在所述存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现本申请实施例所述的客户端页面加载时间的获取方法。

第四方面,本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本申请实施例所述的客户端页面加载时间的获取方法的步骤。

本申请实施例公开的客户端页面加载时间的获取方法,通过根据客户端页面加载触发事件,确定所述客户端页面的启动时间点,然后,获取所述客户端页面包含的显示区域,并对每个所述显示区域进行显示数据加载计时,当所有页面区域的显示数据加载完成时,将最后完成显示数据加载的显示区域的显示数据加载完成时间点,与所述启动时间点之间的时间差,作为所述客户端页面的加载时间,解决了现有技术中页面加载时间计算不准确的问题。本申请公开的页面加载时间获取方法,通过将页面显示内容区域化,然后分别获取每个区域的加载时间,并根据最后完成加载的区域的加载时间确定整个页面的加载时间,提高了获取页面加载时间的准确率。

附图说明

为了更清楚地说明本申请实施例的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1是本申请实施例一的客户端页面加载时间的获取方法的流程图;

图2是本申请实施例二的客户端页面加载时间的获取方法的流程图;

图3是本申请实施例二的客户端页面显示区域示意图;

图4是本申请实施例三的客户端页面加载时间的获取装置结构示意图之一;

图5是本申请实施例三的客户端页面加载时间的获取装置结构示意图之二。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

实施例一

本申请公开的一种客户端页面加载时间的获取方法,如图1所示,该方法包括:步骤110至步骤140。

步骤110,根据客户端页面加载触发事件,确定所述客户端页面的启动时间点。

具体实施时,用户在客户端的当前页面中点击页面上的页面链接、用户在客户端的当前页面中点击某一虚拟按钮或控件,都可以触发对新的页面的加载。用户在客户端的当前页面中执行拖拉等刷新操作,则可以触发对客户端的当前页面的重新加载。本申请实施例所描述的客户端页面加载触发事件还可包括其他情况,在此不做穷举。

具体实施时,可以通过在客户端页面的初始化事件中设置回调函数,或者通过继承系统的页面显示类,并设置获取客户端页面加载触发事件的接口,以获取客户端页面的初始化事件。当获取到客户端页面加载触发事件之后,即确定开始执行该页面的加载操作时,通过调用系统提供的接口获取当前系统时间,并将获取到的当前系统时间作为所述客户端页面的启动时间点。

步骤120,获取所述客户端页面包含的显示区域。

具体实施时,可以根据客户端页面的显示内容,按照功能模块,将客户端页面划分成多个显示区域。加载客户端页面时,系统按照功能模块执行数据加载,并按照功能模块对应的显示区域执行显示。因此,具体实施时,可以根据各功能模块的数据加载时间确定相应显示区域的加载时间,并进一步确定整个页面的加载时间。

具体实施时,客户端主线程会启动多个子线程并行从服务器端获取各功能模块的显示数据,然后,主线程将各子线程获取的服务器端返回的数据设置到页面相应的显示区域的视图中。通常,主线程会为每一个功能模块启动一个子线程,即数据加载线程,以从服务器端获取该功能模块的显示数据,因此,通常子线程的数量与功能模块的数量一一对应。而功能模块与显示区域具有预设的对应关系,因此,子线程与显示区域可以通过功能模块建立对应关系。具体实施时,通过统计子线程的数量可以确定客户端页面的显示区域的数量,根据子线程对应的功能模块可以进一步确定子线程对应的显示区域。

步骤130,对每个所述显示区域进行显示数据加载计时。

显示区域的显示数据加载完成的时间点等于主线程将相该显示区域对应的子线程获取的数据设置到该显示区域的视图中时的系统时间,显示区域的显示数据加载时间等于所述加载完成的时间点与启动该显示区域的时间(即该显示区域所在页面的启动时间)之间的差值。

具体实施时,主线程实时接收各子线程返回的显示数据,当主线程接收到某一子线程返回的显示数据后,主线程将该子线程返回的显示数据设置到相应的显示区域的视图中。同时,主线程在设置完显示区域的视图中的数据之后,获取当前系统时间,并将获取的当前系统时间作为该显示区域加载完成的时间点。

步骤140,将最后完成显示数据加载的显示区域的显示数据加载完成时间点,与所述启动时间点之间的时间差,作为所述客户端页面的加载时间。

当所有用于加载功能模块对应的显示区域的显示数据的子线程都从服务器端获取了显示数据,并由主线程设置到相应的显示区域的视图中之后,将最晚的显示区域加载完成的时间点与该页面的启动时间点之间的时间差,作为所述客户端页面的加载时间。

本申请实施例公开的客户端页面加载时间的获取方法,通过根据客户端页面加载触发事件,确定所述客户端页面的启动时间点,然后,获取所述客户端页面包含的显示区域,并对每个所述显示区域进行显示数据加载计时,当所有页面区域的显示数据加载完成时,将最后完成显示数据加载的显示区域的显示数据加载完成时间点,与所述启动时间点之间的时间差,作为所述客户端页面的加载时间,解决了现有技术中页面加载时间计算不准确的问题。本申请公开的页面加载时间获取方法,通过将页面显示内容区域化,然后分别获取每个区域的加载时间,并根据最后完成加载的区域的加载时间确定整个页面的加载时间,提高了获取页面加载时间的准确率。

实施例二

如图2所示,基于实施例一,本申请的另一具体实施例中公开的客户端页面加载时间的获取方法包括:步骤200至步骤240。

步骤200,设置客户端页面的功能模块和数据加载线程的对应关系,以及所述功能模块和显示区域的对应关系。

具体实施时,可以按照功能模块,将客户端页面划分成多个显示区域。如图3所示,沿着客户端所在设备显示屏竖轴,将客户端页面划分成显示区域310至312。具体实施时,一个功能模块可以对应多个显示区域,也可以对应一个显示区域,优选的,功能模块和显示区域一一对应。例如:显示区域310对应第一功能模块;显示区域311对应第二功能模块;显示区域312对应第三功能模块。

然后,对于每个功能模块,设置与其一一对应的数据加载线程,用于加载该功能模块的显示数据。例如:对于第一功能模块,设置数据加载线程1来加载该第一功能模块对应的显示区域310的显示数据;对于第二功能模块,设置数据加载线程2来加载该第二功能模块对应的显示区域311的显示数据;对于第三功能模块,设置数据加载线程3来加载该第三功能模块对应的显示区域312的显示数据。

具体实施时,数据加载线程为子线程,用于从服务器端获取该子线程对应的功能模块对应的显示区域的显示数据。客户端的主线程根据预先设置的功能模块,并行调用各功能模块对应的数据加载线程,以提高数据加载效率,缩短客户端页面的加载时间。具体实施时,客户端页面的功能模块和数据加载线程的对应关系,以及所述功能模块和显示区域的对应关系可以写入到客户端的程序代码中,或者通过客户端配置文件存储在客户端所在设备的存储器中,以便客户端主线程获取所述对应关系。

步骤210,根据客户端页面加载触发事件,确定所述客户端页面的启动时间点。

根据客户端页面加载触发事件,确定所述客户端页面的启动时间点的具体实施方式参见实施例一,此处不再赘述。

步骤220,获取所述客户端页面包含的显示区域。

获取所述客户端页面包含的显示区域,包括:确定加载所述客户端页面时启动的数据加载线程,其中,所述数据加载线程与所述客户端页面承载的功能模块对应;确定所有所述功能模块对应的显示区域,作为所述客户端页面包含的显示区域。

具体实施时,当检测到客户端页面加载触发事件之后,客户端主线程启动用于获取显示数据的子线程,即与待加载页面的功能模块对应的数据加载线程,从服务器端获取显示数据。具体实施时,客户端主线程可以根据本地配置文件存储的客户端页面的功能模块和数据加载线程的对应关系确定待启动的数据加载线程,以及根据本地配置文件存储的所述功能模块和显示区域的对应关系确定各功能模块对应的显示区域,从而进一步确定所述客户端页面包含的显示区域。或者,客户端主线程可以根据程序代码中存储的客户端页面的功能模块和数据加载线程的对应关系确定待启动的数据加载线程,以及所述功能模块和显示区域的对应关系确定各功能模块对应的显示区域,从而进一步确定所述客户端页面包含的显示区域。

假设上述对应关系以键值对的形式存储在配置文件中,具体形式例如:(功能模块,数据加载线程)、(功能模块,显示区域)。以图3所示的客户端页面为待加载页面为例,功能模块和数据加载线程的对应关系可以表示为:(第一功能模块,数据加载线程1)、(第二功能模块,数据加载线程2)和(第三功能模块,数据加载线程3);功能模块和显示区域的对应关系可以表示为:(第一功能模块,显示区域310)、(第二功能模块,显示区域311)和(第三功能模块,显示区域312)。客户端主线程根据配置文件中存储的对应关系可以确定需要启动数据加载线程1、数据加载线程2和数据加载线程3。其中,数据加载线程1用于加载该第一功能模块对应的显示区域310的显示数据;数据加载线程2用于加载该第二功能模块对应的显示区域311的显示数据;数据加载线程3用于加载该第三功能模块对应的显示区域312的显示数据。

进一步的,根据功能模块和显示区域的对应关系可以确定当前待加载页面包含的显示区域,并进一步确定显示区域和数据加载线程的对应关系。

具体实施时,客户端还可以直接存储功能模块、数据加载线程、显示区域三者的对应关系。例如,以(功能模块,数据加载线程,显示区域)的格式存储功能模块、数据加载线程、显示区域三者的对应关系,根据三者对应关系即可确定当前待加载页面包含的显示区域。

步骤230,对每个所述显示区域进行显示数据加载计时。

对每个所述显示区域进行显示数据加载计时,包括:接收所述功能模块对应的数据加载线程加载的数据;将接收到的所述数据设置到相应显示区域的视图;对所述显示区域进行打点标记,并将当前系统时间作为所述显示区域的显示数据加载完成时间点。

显示区域的显示数据加载完成的时间点等于主线程将相该显示区域对应的子线程获取的数据设置到该显示区域的视图中时的系统时间,显示区域的显示数据加载时间等于所述加载完成的时间点与启动该显示区域的时间(即该显示区域所在页面的启动时间)之间的差值。

具体实施时,主线程启动与功能模块对应的数据加载线程之后,实时接收各子线程返回的显示数据,当主线程接收到某一子线程返回的显示数据后,主线程将该子线程返回的显示数据设置到相应的显示区域的视图中。主线程在设置完显示区域的视图中的数据之后,获取客户端所在设备的当前系统时间,并将获取的当前系统时间作为该显示区域加载完成的时间点。例如,客户端的主线程启动数据加载线程1、2、3之后,实时获取数据加载线程1、2、3从服务器端获取的第一功能模块、第二功能模块和第三功能模块对应的显示区域的显示数据。当主线程接收到数据加载线程1获取的显示数据之后,主线程根据预先建立的数据加载线程和显示区域的对应关系,将数据加载线程1返回的数据设置到显示区域310的视图中。之后,主线程获取系统当前时间,并将获取的系统当前时间作为显示区域310的显示数据加载完成时间点。同时,主线程对所述显示区域310进行打点标记,用于标识显示区域310已经加载完成。

优选的,所述将当前系统时间作为所述显示区域的显示数据加载完成时间点之前,还包括:判断所述显示区域是否已经进行打点标记;若所述显示区域未进行打点标记,则对所述显示区域进行打点标记,并将当前系统时间作为所述显示区域的显示数据加载完成时间点。

具体实施时,为了防止客户端主线程对某个显示区域的数据进行重新加载时,对该显示区域的加载时间进行重复计时,在主线程将数据加载线程获取的显示数据设置到相应的显示区域的视图中之后,在对所述显示区域进行打点标记,并将当前系统时间作为所述显示区域的显示数据加载完成时间点之前,首先判断该显示区域是否已经进行打点。若所述显示区域未进行打点标记,则对所述显示区域进行打点标记,并将当前系统时间作为所述显示区域的显示数据加载完成时间点。若所述显示区域已经进行打点标记,则不再重复记录该显示区域的数据加载时间。

步骤240,将最后完成显示数据加载的显示区域的显示数据加载完成时间点,与所述启动时间点之间的时间差,作为所述客户端页面的加载时间。

具体实施时,将最后完成显示数据加载的显示区域的显示数据加载完成时间点,与所述启动时间点之间的时间差,作为所述客户端页面的加载时间,包括:判断是否所有所述显示区域均已进行打点标记;若是,则将最后完成显示数据加载的显示区域的显示数据加载完成时间点,作为页面加载结束时间点,并将所述页面加载结束时间点与所述启动时间点之间的时间差,作为所述客户端页面的加载时间。

具体实施时,客户端主线程每接收到一个数据加载线程获取的数据,便将所述数据设置到该数据加载线程对应的显示区域的视图中,然后对所述显示区域进行打点标记。之后,主线程判断是否所有区域均已进行打点标记,若所有显示区域均已进行打点标记,说明待加载页面的全部显示区域中的视图都已设置数据,页面可以完整显示,则将最后完成显示数据加载的显示区域的显示数据加载完成时间点作为页面加载结束时间点,并将所述页面加载结束时间点与所述启动时间点之间的时间差,作为所述客户端页面的加载时间。若仍有显示区域未进行打点标记,说明待加载页面的显示区域中仍有部分显示区域的视图需要设置数据,页面还不能完整显示,因此,主线程继续接收数据加载线程加载的数据,直至所有数据加载线程均已完成数据加载,并由主线程设置入相应显示区域的视图中。

本申请实施例公开的客户端页面加载时间的获取方法,通过预先设置客户端页面的功能模块和数据加载线程的对应关系,以及所述功能模块和显示区域的对应关系,然后,根据客户端页面加载触发事件,确定所述客户端页面的启动时间点,获取所述客户端页面包含的显示区域,并对每个所述显示区域进行显示数据加载计时,当所有页面区域的显示数据加载完成时,将最后完成显示数据加载的显示区域的显示数据加载完成时间点,与所述启动时间点之间的时间差,作为所述客户端页面的加载时间,解决了现有技术中页面加载时间计算不准确的问题。本申请公开的页面加载时间获取方法,通过将页面显示内容区域化,然后分别获取每个区域的加载时间,并根据最后完成加载的区域的加载时间确定整个页面的加载时间,提高了获取页面加载时间的准确率。通过对显示区域进行打点标记,用于记录相应显示区域的视图是否已经完成数据设置,可以有效避免系统发起的重复加载导致的页面加载时间计算不准确的问题,进一步提升获取页面加载时间的准确率。

实施例三

相应的,本申请实施例公开的一种客户端页面加载时间的获取装置,如图4所示,所述装置包括:

页面启动时间点确定模块400,用于根据客户端页面加载触发事件,确定所述客户端页面的启动时间点;

显示区域获取模块410,用于获取所述客户端页面包含的显示区域;

分显示区域加载计时模块420,用于对所述显示区域获取模块410获取的每个显示区域进行显示数据加载计时;

页面加载时间确定模块430,用于将最后完成显示数据加载的显示区域的显示数据加载完成时间点,与所述启动时间点之间的时间差,作为所述客户端页面的加载时间。

可选的,所述装置还包括功对应关系设置模块(图中未示出),用于设置客户端页面的功能模块和数据加载线程的对应关系,以及所述功能模块和显示区域的对应关系。

具体实施时,可以按照功能模块,将客户端页面划分成多个显示区域,并建立客户端页面的功能模块和显示区域的对应关系。

可选的,如图5所示,所述显示区域获取模块410包括:

数据加载线程确定单元4101,用于确定加载所述客户端页面时启动的数据加载线程,其中,所述数据加载线程与所述客户端页面承载的功能模块对应;

显示区域确定单元4102,用于确定所有所述功能模块对应的显示区域,作为所述客户端页面包含的显示区域。

可选的,如图5所示,所述分显示区域加载计时模块420包括:

数据接收单元4201,用于接收所述功能模块对应的数据加载线程加载的数据;

视图设置单元4202,用于将接收到的所述数据设置到相应显示区域的视图中;

打点计时单元4203,用于对所述显示区域进行打点标记,并将当前系统时间作为所述显示区域的显示数据加载完成时间点。

可选的,如图5所示,所述分显示区域加载计时模块420还包括:

第一判断单元4204,用于判断所述显示区域是否已经进行打点标记,若所述显示区域未进行打点标记,则调用所述打点计时单元4203对所述显示区域进行打点标记,并将当前系统时间作为所述显示区域的显示数据加载完成时间点。

可选的,如图5所示,所述页面加载时间确定模块430包括:

第二判断单元4301,用于判断是否所有所述显示区域均已进行打点标记;

页面加载时间确定单元4302,用于若所有所述显示区域均已进行打点标记,则将最后完成显示数据加载的显示区域的显示数据加载完成时间点作为页面加载结束时间点,并将所述页面加载结束时间点与所述启动时间点之间的时间差,作为所述客户端页面的加载时间。

本申请实施例公开的客户端页面加载时间的获取装置,通过根据客户端页面加载触发事件,确定所述客户端页面的启动时间点,然后,获取所述客户端页面包含的显示区域,并对每个所述显示区域进行显示数据加载计时,当所有页面区域的显示数据加载完成时,将最后完成显示数据加载的显示区域的显示数据加载完成时间点,与所述启动时间点之间的时间差,作为所述客户端页面的加载时间,解决了现有技术中页面加载时间计算不准确的问题。本申请公开的页面加载时间获取方法,通过将页面显示内容区域化,然后分别获取每个区域的加载时间,并根据最后完成加载的区域的加载时间确定整个页面的加载时间,提高了获取页面加载时间的准确率。通过对显示区域进行打点标记,用于记录相应显示区域的视图是否已经完成数据设置,可以有效避免系统发起的重复加载导致的页面加载时间计算不准确的问题,进一步提升获取页面加载时间的准确率。

相应的,本申请还公开了一种电子设备,包括存储器、处理器及存储在所述存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如本申请实施例一和实施例二所述的客户端页面加载时间的获取方法。所述电子设备可以为移动终端、智能电话、导航仪、个人数字助理、平板电脑等。

本申请还公开了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本申请实施例一的实施例二所述的客户端页面加载时间的获取方法的步骤。

本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

以上对本申请提供的一种客户端页面加载时间的获取方法及装置进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件实现。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1