一种页面数据请求处理方法及装置
技术领域
本说明书实施例涉及互联网应用技术领域,尤其涉及一种页面数据请求处理方法及装置。
背景技术
终端设备的客户端或浏览器打开应用页面时,需要通过发送数据请求,向服务端获取页面数据,从而渲染并向用户展示。传统方案中,用户每进行一次页面数据请求触发操作,如点击浏览器的刷新按钮、或通过下拉刷新客户端页面等,终端设备均会向服务器发送一次数据请求。如果用户对同一页面重复地进行触发操作,需要向服务器获取的页面数据是相同的,但却会增加用户的流量耗费及服务端的访问压力。
发明内容
针对上述技术问题,本说明书实施例提供一种页面数据请求处理方法及装置,技术方案如下:
一种页面数据请求处理方法,配置活动队列与延迟队列,所述活动队列中包括:当前正在或等待向服务端获取数据的数据请求;所述延迟队列中包括:延迟向服务端获取数据的数据请求;所述方法包括:
在确定需要向活动队列添加新数据请求的情况下,判断活动队列中是否存在待添加数据请求的合并目标;
若活动队列中存在至少一个待添加数据请求的合并目标,则将待添加数据请求合并至其中一个合并目标,取消待添加数据请求,并保留该合并目标在活动队列中的位置;
若活动队列中不存在待添加数据请求的合并目标,则判断延迟队列中是否存在待添加数据请求的合并目标;
若延迟队列中存在至少一个待添加数据请求的合并目标,则将其中一个合并目标合并至待添加数据请求,取消该合并目标,并将所述待添加数据请求添加到活动队列的队尾;
其中,所述合并目标满足:待添加数据请求对应的数据请求范围,是该合并目标对应的数据请求范围的子集。
一种页面数据请求处理装置,配置活动队列与延迟队列,所述活动队列中包括:当前正在或等待向服务端获取数据的数据请求;所述延迟队列中包括:延迟向服务端获取数据的数据请求;所述装置包括:
合并目标判断模块,用于在确定需要向活动队列添加新数据请求的情况下,判断活动队列中是否存在待添加数据请求的合并目标;
数据请求合并模块,用于若活动队列中存在至少一个待添加数据请求的合并目标,则将待添加数据请求合并至其中一个合并目标,取消待添加数据请求,并保留该合并目标在活动队列中的位置;
所述合并目标判断模块,还用于若活动队列中不存在待添加数据请求的合并目标,则判断延迟队列中是否存在待添加数据请求的合并目标;
所述数据请求合并模块,还用于若延迟队列中存在至少一个待添加数据请求的合并目标,则将其中一个合并目标合并至待添加数据请求,取消该合并目标,并将所述待添加数据请求添加到活动队列的队尾;
其中,所述合并目标满足:待添加数据请求对应的数据请求范围,是该合并目标对应的数据请求范围的子集。
本说明书实施例所提供的技术方案,在将数据请求添加到预先配置的活动队列前,通过判断该请求对应的数据请求范围与活动队列、延迟队列中各数据请求对应的数据请求范围的关系,确定活动队列、延迟队列中是否存在重复的数据请求,若确定存在重复数据请求,则可以合并后统一处理,从而减少向服务端获取数据的次数,避免因重复的数据请求耗费用户流量及增加服务端压力。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本说明书实施例。
此外,本说明书实施例中的任一实施例并不需要达到上述的全部效果。
附图说明
为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书实施例中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1是本说明书实施例的页面数据请求处理方法的流程示意图;
图2是本说明书实施例的页面数据请求处理装置的一种结构示意图;
图3是本说明书实施例的页面数据请求处理装置的另一种结构示意图;
图4是用于配置本说明书实施例装置的一种设备的结构示意图。
具体实施方式
为了使本领域技术人员更好地理解本说明书实施例中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行详细地描述,显然,所描述的实施例仅仅是本说明书的一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员所获得的所有其他实施例,都应当属于保护的范围。
本说明书实施例提供一种页面数据请求处理方法,参见图1所示,该方法可以包括以下步骤:
S101,在确定需要向活动队列添加新数据请求的情况下,判断活动队列中是否存在待添加数据请求的合并目标;
用户基于终端设备的浏览器或客户端使用应用时,需要通过浏览器或客户端提供的操作接口,触发页面数据请求。
例如,用户可以点击浏览器的刷新按钮刷新当前的页面,或者通过下拉操作刷新客户端页面;又例如,用户可以通过上拉操作在客户端中加载新的页面内容,或者通过点击浏览器展示的结算按钮进入结算页面;等等。
当用户通过操作接口触发页面数据请求时,浏览器或客户端将根据所请求的数据范围,生成对应的数据请求发送至服务端,并接收服务端返回的数据,渲染后向用户展示。
应用页面的常用布局方式,是将页面划分为多个区块,在加载页面时,可以只加载部分页面而不必加载整个页面。
例如,用户通过上拉操作在客户端中加载新的页面内容时,客户端并不需要向服务器请求以显示的旧页面的数据;又例如,浏览器的某页面中存在固定不变与动态更新的内容,则浏览器只需要在第一次打开该页面时需要向服务器请求页面的全部数据;等等。
因此,页面数据请求对应的数据请求范围,可以是页面中所有区块的数据,也可以是部分区块的数据。
此外,本说明书实施例所提供的方案中,预先配置活动队列与延迟队列,当接收到数据请求时,可以首先判断该数据请求是否可以延迟处理,如判断该数据请求是否携带用于标识可以延迟处理的延迟标识等。
如果该数据请求未携带延迟标识,则可以确定该数据请求需要添加到活动队列,等待向服务端获取数据,活动队列中也包括正在向服务端获取数据的数据请求。
如果该数据请求携带延迟标识,则可以确定该数据请求可以添加到延迟队列。可以理解的是,是否携带延迟标识,只表示该数据请求是否较为紧急,是否可以延迟处理,如果确定当前活动队列较闲,也可以直接将带有延迟标识的数据请求,添加活动队列等待处理。
被添加到延迟队列的数据请求,仍将逐个被添加到活动队列。例如,可以预先配置活动队列中的数据请求个数,当活动队列中出现较多空位时,则可以将延迟队列中的数据请求按照队列顺序添加到活动队列。又如,延迟标识还可以用于表示该数据请求的延迟阈值,即可以延迟的最大时长,当该数据请求被添加到延迟队列后,便开始统计添加后的已延迟时长,并在已延迟时长超过延迟阈值时,确定需要向活动队列添加该数据请求。
如上面所述,页面数据请求对应的数据请求范围,可以是页面中所有区块的数据,也可以是部分区块的数据,因此各数据请求对应的数据请求范围可能存在交集。在确定需要向活动队列添加新数据请求的情况下,首先判断活动队列中是否存在待添加数据请求的合并目标,这里的合并目标,是指待添加数据请求对应的数据请求范围,是该合并目标对应的数据请求范围的子集的数据请求。
S102,若活动队列中存在至少一个待添加数据请求的合并目标,则将待添加数据请求合并至其中一个合并目标,取消待添加数据请求,并保留该合并目标在活动队列中的位置;
如果活动队列中存在一个合并目标,通过处理该合并目标向服务器请求的数据中,将包括待添加数据请求需要向服务器请求的数据,即只处理该合并目标,便可以向服务器请求该合并目标与待添加数据请求所需要的数据,因此,可以将待添加数据请求合并至合并目标中,统一地进行处理。
当然,活动队列中也可能存在多个合并目标,则可以将待添加数据请求合并至其中一个合并目标。可以随机地合并至其中一个合并目标,也可以根据预设的合并规则选择一个合并目标。
例如,可以确定该至少一个待添加数据请求的合并目标在活动队列中的位置,并将待添加数据请求合并至在活动队列中位置最前的合并目标,从而可以尽早地获取对应数据;又例如,可以确定该至少一个待添加数据请求的合并目标对应的数据范围,并根据所确定的数据请求范围,对该至少一个待添加数据请求的合并目标进行优先级排序,将待添加数据请求合并至优先级最高的合并目标。
可以理解的是,根据所确定的数据请求范围进行优先级排序,具体可以通过多种方式实现,例如,按照所对应数据请求范围的大小,由大到小或由小到大进行排序;或者按照待添加数据请求对应数据范围占合并目标对应数据请求范围比例的大小,由大到小或由小到大进行排序;等等。不同的实现方式可以解决不同的需求,本说明书实施例理论上不需要对此进行限定,本领域技术人员可以根据实际情况灵活地进行设定。
将待添加数据请求合并至其中一个合并目标后,便可以取消待添加数据请求,并保留该合并目标在活动队列中的位置,即只需要处理该合并目标一个数据请求。
S103,若活动队列中不存在待添加数据请求的合并目标,则判断延迟队列中是否存在待添加数据请求的合并目标;
当然,也存在活动队列中不存在待添加数据请求的合并目标的情况,则可以进一步判断延迟队列中是否存在待添加数据请求的合并目标,这里的合并目标仍指待添加数据请求对应的数据请求范围,是该合并目标对应的数据请求范围的子集的数据请求。
S104,若延迟队列中存在至少一个待添加数据请求的合并目标,则将其中一个合并目标合并至待添加数据请求,取消该合并目标,并将所述待添加数据请求添加到活动队列的队尾。
如果延迟队列中存在一个合并目标,则可以将该合并目标合并至待添加数据请求,取消该合并目标,并将所述待添加数据请求添加到活动队列的队尾,等待向服务端合并目标与待添加数据请求对应的数据。
如果延迟队列中存在多个合并目标,则可以将其中一个合并目标合并至待添加数据请求。可以随机地合并至其中一个合并目标,也可以根据预设的合并规则选择一个合并目标。
例如,可以如上面所述,根据位置或数据范围对合并目标进行优先级排序,并选择优先级最高的合并目标,在此不再赘述;又例如,可以确定该至少一个待添加数据请求的合并目标的已延迟时长、及延时阈值,根据所确定的已延迟时长及延时阈值,计算剩余时长,并将剩余时长最短的合并目标合并至待添加数据请求;等等。
将其中一个合并目标合并至待添加数据请求,同样取消该合并目标,并将所述待添加数据请求添加到活动队列的队尾。
此外,针对活动队列与延迟队列,在设定所采用的合并规则时,可以对二者设定相同的合并规则,如均选择位置最前的合并目标进行合并,也可以设定不同的合并规则,如活动队列中写案子位置最前的合并目标,而延迟队列中选择剩余时间最短的合并目标,本说明书实施例对此不进行限定。
如果延迟队列中不存在合并目标,则可以直接将待添加数据请求添加到活动队列的队尾。
此外,基于不同操作触发的数据请求,所请求及服务端返回的数据类型可能不同。如果待添加数据请求对应的数据请求范围,是合并目标对应的数据请求范围的子集,但是对应的数据类型不同,则可以在接收到服务端返回的数据后,进一步地进行处理,以获得所需要类型的数据,或者可以在判断是否存在合并目标时,对数据类型进行判断,即合并目标还需要满足待添加数据请求与该合并目标对应的数据类型相同。
由于相同接口所请求及获取的数据类型相同,在一种具体实施方式中,可以通过判断接口是否相同,来判断数据请求对应的数据类型是否相同。
可以理解的是,本领域技术人员还可以根据实际需求,对数据请求做其他处理,如针对请求创建任务、对请求参数进行预处理、请求任务执行完成后将该请求从队列中移除、等等,本说明书实施例中并不需要对此进行限定。
下面结合一个更为具体的实例,对本说明书提供的页面数据请求处理方法进行说明。
用户使用计算机的浏览器打开某页面后,在页面加载完成前,重复点击浏览器的刷新按钮两次,从而触发了多个该页面的数据请求。
其中,所生成的第一个数据请求将被添加到活动队列的尾部,等待向服务端获取数据,而之后生成的第二个、第三个数据请求,经判断所对应的操作接口及数据请求范围,均与第一个数据请求相同,则可以确定是重复的数据请求,从而将之后生成的第二个、第三个数据请求,均合并至第一个数据请求,取消第二个、第三个数据请求,并保留第一个数据请求在活动队列中的位置。
如果此时第一个数据请求仍在等待向服务端请求数据,则可以继续等待。而如果此时第一个数据请求已向服务端发送,正在获取服务端返回的数据,则相当于打开该页面后生成的三个数据请求,均获取到了服务端返回的数据,页面数据加载完成后的结果,与分别向服务端发送三个数据请求,获取数据并加载的结果是相同的。
可见,应用上述方案,可以将重复的数据请求合并处理,从而减少向服务端获取数据的次数,避免因重复的数据请求耗费用户流量及增加服务端压力。
相应于上述方法实施例,本说明书实施例还提供一种页面数据请求处理装置,配置活动队列与延迟队列,所述活动队列中包括:当前正在或等待向服务端获取数据的数据请求;所述延迟队列中包括:延迟向服务端获取数据的数据请求;参见图2所示,该装置可以包括:
合并目标判断模块110,用于在确定需要向活动队列添加新数据请求的情况下,判断活动队列中是否存在待添加数据请求的合并目标;
数据请求合并模块120,用于若活动队列中存在至少一个待添加数据请求的合并目标,则将待添加数据请求合并至其中一个合并目标,取消待添加数据请求,并保留该合并目标在活动队列中的位置;
所述合并目标判断模块110,还用于若活动队列中不存在待添加数据请求的合并目标,则判断延迟队列中是否存在待添加数据请求的合并目标;
所述数据请求合并模块120,还用于若延迟队列中存在至少一个待添加数据请求的合并目标,则将其中一个合并目标合并至待添加数据请求,取消该合并目标,并将所述待添加数据请求添加到活动队列的队尾;
其中,所述合并目标满足:待添加数据请求对应的数据请求范围,是该合并目标对应的数据请求范围的子集。
在本说明书提供的一种具体实施方式中,参见图3所示,所述装置还包括添加队列判断模块130,具体可以用于:
在接收到数据请求的情况下,判断该数据请求是否携带延迟标识,所述延迟标识用于表示:该数据请求可延迟处理;若该数据请求未携带延迟标识,则确定需要向活动队列添加接收到的数据请求。
在本说明书提供的一种具体实施方式中,所述延迟标识还可以用于表示:该数据请求的延时阈值;
所述添加队列判断模块130,具体还可以用于:若该数据请求携带延迟标识,则将接收到的数据请求添加到延迟队列,并统计添加后的已延迟时长;在延迟队列中任一数据请求的已延迟时长,超过该数据请求的延时阈值的情况下,确定需要向活动队列添加该数据请求。
在本说明书提供的一种具体实施方式中,所述数据请求合并模块120,具体可以用于:确定该至少一个待添加数据请求的合并目标在活动队列中的位置;将待添加数据请求合并至在活动队列中位置最前的合并目标。
在本说明书提供的一种具体实施方式中,所述数据请求合并模块120,具体可以用于:确定该至少一个待添加数据请求的合并目标对应的数据范围;根据所确定的数据请求范围,对该至少一个待添加数据请求的合并目标进行优先级排序;将待添加数据请求合并至优先级最高的合并目标。
在本说明书提供的一种具体实施方式中,所述数据请求合并模块120,具体可以用于:确定该至少一个待添加数据请求的合并目标在延迟队列中的位置;将在延迟队列中位置最前的合并目标合并至待添加数据请求。
在本说明书提供的一种具体实施方式中,所述数据请求合并模块120,具体可以用于:确定该至少一个待添加数据请求的合并目标的已延迟时长、及延时阈值;根据所确定的已延迟时长及延时阈值,计算剩余时长;将剩余时长最短的合并目标合并至待添加数据请求。
在本说明书提供的一种具体实施方式中,所述数据请求合并模块120,具体可以用于:确定该至少一个待添加数据请求的合并目标对应的数据范围;根据所确定的数据请求范围,对该至少一个待添加数据请求的合并目标进行优先级排序;将优先级最高的合并目标合并至待添加数据请求。
在本说明书提供的一种具体实施方式中,所述合并目标还满足:待添加数据请求与该合并目标对应的数据类型相同。
上述装置中各个模块的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
本说明书实施例还提供一种计算机设备,其至少包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,处理器执行所述程序时实现前述的页面数据请求处理方法。该方法至少包括:
一种页面数据请求处理方法,配置活动队列与延迟队列,所述活动队列中包括:当前正在或等待向服务端获取数据的数据请求;所述延迟队列中包括:延迟向服务端获取数据的数据请求;所述方法包括:
在确定需要向活动队列添加新数据请求的情况下,判断活动队列中是否存在待添加数据请求的合并目标;
若活动队列中存在至少一个待添加数据请求的合并目标,则将待添加数据请求合并至其中一个合并目标,取消待添加数据请求,并保留该合并目标在活动队列中的位置;
若活动队列中不存在待添加数据请求的合并目标,则判断延迟队列中是否存在待添加数据请求的合并目标;
若延迟队列中存在至少一个待添加数据请求的合并目标,则将其中一个合并目标合并至待添加数据请求,取消该合并目标,并将所述待添加数据请求添加到活动队列的队尾;
其中,所述合并目标满足:待添加数据请求对应的数据请求范围,是该合并目标对应的数据请求范围的子集。
图4示出了本说明书实施例所提供的一种更为具体的计算设备硬件结构示意图,该设备可以包括:处理器1010、存储器1020、输入/输出接口1030、通信接口1040和总线1050。其中处理器1010、存储器1020、输入/输出接口1030和通信接口1040通过总线1050实现彼此之间在设备内部的通信连接。
处理器1010可以采用通用的CPU(Central Processing Unit,中央处理器)、微处理器、应用专用集成电路(Application Specific Integrated Circuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本说明书实施例所提供的技术方案。
存储器1020可以采用ROM(Read Only Memory,只读存储器)、RAM(Random AccessMemory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器1020可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器1020中,并由处理器1010来调用执行。
输入/输出接口1030用于连接输入/输出模块,以实现信息输入及输出。输入输出/模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。
通信接口1040用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信。
总线1050包括一通路,在设备的各个组件(例如处理器1010、存储器1020、输入/输出接口1030和通信接口1040)之间传输信息。
需要说明的是,尽管上述设备仅示出了处理器1010、存储器1020、输入/输出接口1030、通信接口1040以及总线1050,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本说明书实施例方案所必需的组件,而不必包含图中所示的全部组件。
本说明书实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现前述的页面数据请求处理方法。该方法至少包括:
一种页面数据请求处理方法,配置活动队列与延迟队列,所述活动队列中包括:当前正在或等待向服务端获取数据的数据请求;所述延迟队列中包括:延迟向服务端获取数据的数据请求;所述方法包括:
在确定需要向活动队列添加新数据请求的情况下,判断活动队列中是否存在待添加数据请求的合并目标;
若活动队列中存在至少一个待添加数据请求的合并目标,则将待添加数据请求合并至其中一个合并目标,取消待添加数据请求,并保留该合并目标在活动队列中的位置;
若活动队列中不存在待添加数据请求的合并目标,则判断延迟队列中是否存在待添加数据请求的合并目标;
若延迟队列中存在至少一个待添加数据请求的合并目标,则将其中一个合并目标合并至待添加数据请求,取消该合并目标,并将所述待添加数据请求添加到活动队列的队尾;
其中,所述合并目标满足:待添加数据请求对应的数据请求范围,是该合并目标对应的数据请求范围的子集。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本说明书实施例可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本说明书实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本说明书实施例各个实施例或者实施例的某些部分所述的方法。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,在实施本说明书实施例方案时可以把各模块的功能在同一个或多个软件和/或硬件中实现。也可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述仅是本说明书实施例的具体实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本说明书实施例原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本说明书实施例的保护范围。