CN109491803B - 一种页面处理方法、装置以及相关设备 - Google Patents

一种页面处理方法、装置以及相关设备 Download PDF

Info

Publication number
CN109491803B
CN109491803B CN201811183435.9A CN201811183435A CN109491803B CN 109491803 B CN109491803 B CN 109491803B CN 201811183435 A CN201811183435 A CN 201811183435A CN 109491803 B CN109491803 B CN 109491803B
Authority
CN
China
Prior art keywords
target
page
dynamic data
animation
display
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201811183435.9A
Other languages
English (en)
Other versions
CN109491803A (zh
Inventor
谌薇
张剑华
田野
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201811183435.9A priority Critical patent/CN109491803B/zh
Publication of CN109491803A publication Critical patent/CN109491803A/zh
Application granted granted Critical
Publication of CN109491803B publication Critical patent/CN109491803B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues

Abstract

本发明实施例公开了一种页面处理方法、装置以及相关设备,方法包括:获取目标页面对应的具有先进先出特性的目标队列;从目标队列中的目标事件集中提取第一目标事件,并获取第一目标事件中的第一页面动态数据和第一显示时长;将目标队列的轮询间隔时长设置为第一显示时长,并基于第一显示时长动画显示第一页面动态数据;当目标队列的轮询间隔时长达到第一显示时长时,从目标队列中提取第二目标事件,并获取第二目标事件中的第二页面动态数据和第二显示时长;将目标队列的轮询间隔时长设置为第二显示时长,并基于第二显示时长动画显示第二页面动态数据。采用本发明,可以降低计算量,节约计算资源。

Description

一种页面处理方法、装置以及相关设备
技术领域
本发明涉及计算机技术领域,尤其涉及一种页面处理方法、装置以及相关设备。
背景技术
互联网已经成为支撑现代化社会发展的以及技术进步的重要基础设施之一,深刻地改变着人们的生产、生活和学习方式,成为社会进步和科技创新的最重要的基础设施。互联网的发展使得网页访问信息量剧增,人们足不出户通过各种网页就可以获取各种资讯,寻找数码新品、电影和歌曲,网上购物、交易等。用户通过网页获取信息,对网页中的数据进行动画过渡展示可以提升网页的层次感,引导用户的关注点,方便用户快速提取出网页中的主要内容信息,优化信息的传播方式。
在现有技术中,网页中需要动画展示的数据时序控制方法是根据当前动画的总执行时间来确定下一个动画的开始执行时间,例如,接收到第一个需要动画展示的数据,假设第一个数据的开始执行时间为t0,动画执行时间为t1;接收到第二个需要动画展示的数据,那么第二个数据的开始执行时间就是t0+t1,若它的动画执行时间为t2;接收到第三个需要动画展示的数据,第三个数据的开始执行时间就是t0+t1+t2,后续第四个数据、第五个数据...都按照同样的方式确定每个数据的开始执行时间。
上述可见,每增加一个需要动画展示的数据,就要根据当前累积的所有动画的执行时间,计算一次新增动画的开始执行时间。由于各动画的开始展示时间计算耦合性高,计算量巨大,这将导致消耗大量的计算资源。
发明内容
本发明实施例提供一种页面处理方法、装置以及相关设备,可以解除各动画开始展示时间的计算耦合性,降低计算量,节约计算资源。
本发明实施例一方面提供了一种页面处理方法,包括:
获取目标页面对应的具有先进先出特性的目标队列;所述目标队列包括目标事件集;
从所述目标队列中的目标事件集中提取第一目标事件,并获取所述第一目标事件中的第一页面动态数据和第一显示时长;
将所述目标队列的轮询间隔时长设置为所述第一显示时长,并基于所述第一显示时长动画显示所述第一页面动态数据;
当所述目标队列的轮询间隔时长达到所述第一显示时长时,从所述目标队列中提取第二目标事件,并获取所述第二目标事件中的第二页面动态数据和第二显示时长;
将所述目标队列的轮询间隔时长设置为所述第二显示时长,并基于所述第二显示时长动画显示所述第二页面动态数据。
其中,所述获取目标页面对应的具有先进先出特性的目标队列,包括:
获取所述目标页面的访问请求,根据所述访问请求获取所述目标页面中动画显示的页面动态数据,并创建所述目标队列;
将所述页面动态数据封装为目标事件,将所述目标事件组合为所述目标事件集合,并按照动画显示优先级顺序将所述目标事件集合中的目标事件依次添加至所述目标队列;所述目标事件包括所述页面动态数据和动画记录表;所述动画记录表是用于记录所述页面动态数据的动画显示属性;所述动画显示属性包括页面动态数据的显示时长。
其中,所述根据所述访问请求获取所述目标页面中动画显示的页面动态数据,包括:
根据所述目标页面访问请求获取所述目标页面所包含的页面数据;
识别所述页面数据对应的显示类型,将所述显示类型为动画显示类型的页面数据确定为所述页面动态数据。
其中,所述将所述页面动态数据封装为目标事件,包括:
识别所述页面动态数据的对象属性类型,作为目标数据类型;
根据所述目标数据类型,确定所述页面动态数据对应的动画执行函数的函数名称,并获取所述页面动态数据对应的显示时长;
为所述页面动态数据创建动画记录表,将所述目标数据类型、所述函数名称、所述显示时长均添加至所述动画记录表;
将更新后的动画记录表和所述页面动态数据封装为所述目标事件。
其中,所述基于所述第一显示时长动画显示所述第一页面动态数据,包括:
从所述第一目标事件中提取第一动画记录表,获取所述第一动画记录表中的函数名称对应的第一函数,并获取所述第一目标事件对应的第一延迟时长;
当等待时长等于所述第一延迟时长时,根据所述第一函数和所述第一动画记录表中的第一显示时长,将所述第一页面动态数据进行动画处理,以按照所述第一函数对应的动画显示方式和所述第一显示时长动画显示所述第一页面动态数据;所述等待时长是将所述目标队列的轮询间隔时长设置为所述第一显示时长后开始计时统计所得到的时长。
其中,还包括:
为所述目标队列设置轮询定时器,为所述轮询定时器设置原始轮询时长,并在所述轮询定时器间隔所述原始轮询时长后,轮询所述目标队列;
当所述第一目标事件是所述目标事件集中动画显示优先级最高的目标事件时,执行从所述目标队列中的目标事件集中提取第一目标事件的步骤。
其中,还包括:
当所述目标队列的轮询间隔时长达到所述第二显示时长,且所述目标队列为空集时,将所述目标队列的轮询间隔时长调整为所述原始轮询时长。
其中,还包括:
当接收到关闭所述目标页面的目标关闭指令时,根据所述目标关闭指令在缓存中释放所述目标队列和所述轮询定时器。
其中,还包括:
当接收到目标页面的最新页面动态数据时,将所述最新页面动态数据封装为最新目标事件,并将所述最新目标事件添加至所述目标队列的队尾。
本发明实施例一方面提供了一种页面处理装置,包括:
获取模块,用于获取目标页面对应的具有先进先出特性的目标队列;所述目标队列包括目标事件集;
提取模块,用于从所述目标队列中的目标事件集中提取第一目标事件,并获取所述第一目标事件中的第一页面动态数据和第一显示时长;
设置模块,用于将所述目标队列的轮询间隔时长设置为所述第一显示时长;
显示模块,用于基于所述第一显示时长动画显示所述第一页面动态数据;
所述设置模块,还用于当所述目标队列的轮询间隔时长达到所述第一显示时长时,从所述目标队列中提取第二目标事件,并获取所述第二目标事件中的第二页面动态数据和第二显示时长;
所述设置模块,还用于将所述目标队列的轮询间隔时长设置为所述第二显示时长,并基于所述第二显示时长动画显示所述第二页面动态数据。
其中,所述获取模块,包括:
第一获取单元,用于获取所述目标页面的访问请求;
第二获取单元,用于根据所述访问请求获取所述目标页面中动画显示的页面动态数据;
所述第一获取单元,还用于创建所述目标队列;
封装单元,用于将所述页面动态数据封装为目标事件;
组合单元,用于将所述目标事件组合为所述目标事件集合,并按照动画显示优先级顺序将所述目标事件集合中的目标事件依次添加至所述目标队列;所述目标事件包括所述页面动态数据和动画记录表;所述动画记录表是用于记录所述页面动态数据的动画显示属性;所述动画显示属性包括页面动态数据的显示时长。
其中,所述第二获取单元,包括:
获取子单元,用于根据所述目标页面访问请求获取所述目标页面所包含的页面数据;
识别子单元,用于识别所述页面数据对应的显示类型,将所述显示类型为动画显示类型的页面数据确定为所述页面动态数据。
其中,所述封装单元,包括:
确定子单元,用于识别所述页面动态数据的对象属性类型,作为目标数据类型;
封装子单元,用于根据所述目标数据类型,确定所述页面动态数据对应的动画执行函数的函数名称,并获取所述页面动态数据对应的显示时长;
所述封装子单元,还用于为所述页面动态数据创建动画记录表,将所述目标数据类型、所述函数名称、所述显示时长均添加至所述动画记录表;
所述封装子单元,还用于将更新后的动画记录表和所述页面动态数据封装为所述目标事件。
其中,所述显示模块,包括:
提取单元,用于从所述第一目标事件中提取第一动画记录表,获取所述第一动画记录表中的函数名称对应的第一函数,并获取所述第一目标事件对应的第一延迟时长;
显示单元,用于当等待时长等于所述第一延迟时长时,根据所述第一函数和所述第一动画记录表中的第一显示时长,将所述第一页面动态数据进行动画处理,以按照所述第一函数对应的动画显示方式和所述第一显示时长动画显示所述第一页面动态数据;所述等待时长是将所述目标队列的轮询间隔时长设置为所述第一显示时长后开始计时统计所得到的时长。
其中,还包括:
轮询模块,用于为所述目标队列设置轮询定时器,为所述轮询定时器设置原始轮询时长,并在所述轮询定时器间隔所述原始轮询时长后,轮询所述目标队列;
通知模块,用于当所述第一目标事件是所述目标事件集中动画显示优先级最高的目标事件时,通知所述提取模块执行对应操作。
其中,还包括:
调整模块,用于当所述目标队列的轮询间隔时长达到所述第二显示时长,且所述目标队列为空集时,将所述目标队列的轮询间隔时长调整为所述原始轮询时长。
其中,还包括:
关闭模块,用于当接收到关闭所述目标页面的目标关闭指令时,根据所述目标关闭指令在缓存中释放所述目标队列和所述轮询定时器。
其中,还包括:
添加模块,用于当接收到目标页面的最新页面动态数据时,将所述最新页面动态数据封装为最新目标事件,并将所述最新目标事件添加至所述目标队列的队尾。
本发明实施例一方面提供了一种电子设备,包括:处理器和存储器;
所述处理器和存储器相连,其中,所述存储器用于存储程序代码,所述处理器用于调用所述程序代码,以执行如本发明实施例中的方法。
本发明实施例一方面提供了一种计算机存储介质,所述计算机存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时,执行如本发明实施例中的方法。
本发明实施例通过获取目标页面的对应的目标队列;目标队列包括目标事件集;从目标队列中的目标事件集中提取第一目标事件,并获取第一目标事件中的第一页面动态数据和第一显示时长;将目标队列的轮询间隔时长设置为第一显示时长,并基于第一显示时长动画显示第一页面动态数据;当目标队列的轮询间隔时长达到第一显示时长时,从目标队列中的目标事件集中提取第二目标事件,并获取第二目标事件中的第二页面动态数据和第二显示时长;将目标队列的轮询间隔时长设置为第二显示时长,并基于第二显示时长动画显示第二页面动态数据。上述可知,将需要动画显示的动态数据分别封装为事件并存储至队列中,依据队列先进先出的结构特性,以及根据每个动态数据的动画展示时长动态调整队列的轮询间隔时长,按照该轮询间隔时长从队列的队首位置处提取出事件用于动画显示动态数据。这样只需要关注每个动态数据的动画显示时长,从而解除了各动态数据的开始展示时间计算的依赖关系,不仅可以保证动态数据按照正确时序动画显示,还能够降低计算量,进而节约计算资源。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种页面处理方法的系统架构图;
图2是本发明实施例提供的一种页面处理方法的场景示意图;
图3是本发明实施例提供的一种页面处理方法的流程示意图;
图4是本发明实施例提供的另一种页面处理方法的流程示意图;
图5是本发明实施例提供的一种页面处理装置的结构示意图;
图6是本发明实施例提供的一种电子设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,是本发明实施例提供的一种页面处理方法的系统架构图,服务器10a为用户终端集群提供服务,用户终端集群可以包括:用户终端10b、用户终端10c、...、用户终端10d。当用户通过用户终端(可以是用户终端10b、用户终端10c或用户终端10d)访问网页时,服务器10a向用户终端发送所请求网页的页面程序,其中页面程序的语音类型可以是HTML(Hyper Text Markup Language,超级文本标记语言)。用户终端接收到页面程序后,解析该页面程序,如果解析到需要请求外部资源数据时,还会向该外部资源数据所在的服务器10a(假设外部资源数据所在的服务器仍旧是服务器10a)请求数据,后续用户终端就可以根据页面程序和请求的数据在屏幕中显示所请求的页面。其中,在页面中展示的数据包括静态展示的静态数据和动画展示的动态数据,若是静态数据,可以通过绘制和渲染,直接在页面中显示该静态数据;若是动态数据,则需要按照预设定的显示顺序依次动画展示该动态数据,其中所请求的页面可以是H5页面,那么动态数据可以为H5页面中动画显示的数据,H5页面是使用HTML5技术开发的前端页面。下述以服务器10a、一个用户终端10b和多个需要动画展示的动态数据为例,说明如何按照预定的显示顺序在页面中依次展示多个动态数据。
其中,用户终端可以包括手机、平板电脑、笔记本电脑、掌上电脑、智能音响、移动互联网设备(MID,mobile internet device)、POS(Point Of Sales,销售点)机、可穿戴设备(例如智能手表、智能手环等)等。
请参见图2,是本发明实施例提供的一种页面处理方法的场景示意图。用户在用户终端10b的界面20a中输入待访问页面的URL(Uniform Resource Locator,统一资源定位符),浏览器解析后查找该URL对应的IP(Internet Protocol,网络之间互连的协议)地址,浏览器向查找的IP地址对应的服务器10a发送http(HyperText Transfer Protocol,超文本传输协议)请求,服务器10a处理该请求,并向用户终端10b返回http响应,其中返回的http响应包括用户待访问页面的页面程序,用户终端10b中的浏览器解析该页面程序,如果解析到请求外部资源数据时,向该外部资源数据所在的服务器10a请求页面数据。用户终端10b根据所请求到的页面数据和页面程序,展示页面,其中在页面中展示的页面数据(例如,页面数据可以是文本数据、图片数据、按钮数据、对话框数据等)包括页面静态数据和页面动态数据,其中页面静态数据是没有动画展示效果的数据,对应地,页面动态数据是具有动画展示效果的数据,需要说明的是,页面程序中也可以包括页面数据,一般来说,页面静态数据可以直接嵌入在页面程序中或者向外部服务器发送获取请求以获取,而页面动态数据是需要从外部服务器中获取的。
用户终端10b识别获取到的页面数据是页面动态数据或者是页面静态数据的方式可以是:在获取到的所有涉及所请求页面的页面数据中,识别每个页面数据的显示类型,显示类型分为动画显示类型和静态显示类型,动画显示类型对应的页面数据为页面动态数据;静态显示类型对应的页面数据为页面静态数据。显示类型是服务器10a发送的页面数据中就已经携带的,终端10b只需要在预设位置处读取标识显示类型的字段,就可以确定该页面数据对应的显示类型。因此只需将显示类型为动画显示类型的页面数据作为页面动态数据,将显示类型为静态显示类型的页面数据作为页面静态数据。
下面以用户终端10b获取到3个页面动态数据为例进行说明,用户终端10b在接收到服务器10a的http响应时,就创建一个空白队列20b,从数据结构特性上来说,队列是一种具有先进先出特性的线性表,即数据只能从队尾插入,从队头删除,队头指针在队列20b中所指向的位置即是队头,队尾指针在队列20b中所指向的位置即是队尾,一般来说,队列执行了删除操作队头指针向队尾方向后移,队列执行了插入操作队尾指针也向队尾方向后移,且创建空白队列时,队头指针和队尾指针指向队列中的同一个位置。同时为该队列20b设置一个轮询定时器20c,并为该轮询定时器20c设定初始轮询时长为100毫秒,该轮询定时器是用于计时轮询队列,即间隔初始轮询时长(100毫秒)后,轮询定时器就轮询队列20b中是否存在事件,若存在,用户终端10b就提取出位于队首的事件,若不存在,轮询定时器20c就继续间隔初始轮询间隔时长后轮询队列。用户终端获取到3个页面动态数据后,将每个页面动态数据封装为一个事件。
下面以一个页面动态数据封装为一个事件为例进行说明:识别页面动态数据的对象属性类型,作为目标属性类型,其中目标属性类型可以用数字、字母或者数字与字母的组合来标识,且每个属性类型都具有唯一性和排他性,需要说明的是,用户终端10b接到到服务器10a发送的页面动态数据时就携带该数据的对象属性类型,即用户终端只需要在预设位置处读取标识对象属性类型的字段,将该字段确定为目标属性类型即可,其中,对象类型可以包括:文本、图像、对话框等。由于页面动态数据是需要动画显示的页面数据,用户终端10b根据页面动态数据对应的目标属性类型确定对应的动画执行函数的函数名称,并获取该页面动态数据的动画展示持续时长,其中目标属性类型和动画执行函数是一一对应的,也就是说若两个页面动态数据的目标属性类型是相同的,那么它们的动画执行函数就是一样的,即是具有相同的动画展示方式,动画展示持续时长是页面的开发人员提前在页面程序中设定好的。为页面动态数据创建一个空白的动画记录表,将页面动态数据对应的目标数据类型、动画执行函数的函数名称以及动画展示持续时长均添加至动画记录表中,将添加了信息后的动画记录表和页面动态数据封装为事件。
如图2所示,对3个页面动态数据都分别采用上述方式,可以得到对应的3个事件,按照动画显示优先级将上述3个事件分别设置为事件1、事件2和事件3,其中事件1的动画显示优先级最高,事件2次之,事件3的动画显示优先级最小。将事件1、事件2和事件3依次插入构建好的空白队列20b中,此时队列20b中就包括3个事件,由于队列20b是具有先进先出的特性,因此事件的插入顺序即是后续的播放顺序,这样可以保证多个页面动态数据是按照预定的显示顺序有条不紊的播放,即是先将事件1从插入(push)队列20b的队尾,队尾指针向队尾方向后移;然后将事件2插入队列20b的队尾,队尾指针向队尾方向后移;最后将事件3插入队列20b队尾,队尾指针向队尾方向后移。在将页面动态数据封装为事件的过程中,轮询定时器20c仍旧是每间隔初始轮询时长(100毫秒)就轮询队列20b中是否存在事件,初始轮询时长的数值可以设置得尽可能的小,这样可以保证一旦有事件插入队列20b中,轮询定时器20c就可以尽快地在队列20b中轮询到该事件。
轮询定时器20c轮询队列20b,且此时队列20b中已经存在事件1、事件2和事件3,用户终端10b提取出位于队列20b首位的事件,即提取出事件1(提取出事件1后,队列20b中就只包括事件2和事件3,且队头指针向队尾方向后移,指向事件2所在的位置处,也即是事件2处于队列20b的队头)。同时确定事件1中动画记录表所记录的动画展示持续时长,将轮询定时器的轮询间隔时长由初始轮询间隔时长调整为上述事件1中的动画展示持续时长。
调用事件1中的动画记录表所记录的函数名称对应的动画执行函数,并将事件1中的动画记录表所记录的动画展示持续时长,作为动画执行函数的函数参数,对事件1中的页面动态数据进行动画处理,使得该页面动态数据按照动画执行函数对应的动画显示方式和动画展示持续时长动画显示该页面动态数据。如图2中的界面20d所展示的,事件1中的页面动态数据是内容为“下午好!”的文本消息,对该页面动态数据动画处理后,该文本消息从屏幕的底部往上移动至屏幕左上角(后续就在屏幕的左上角持续显示,直至关闭该页面),上述动画的耗时就等于事件1中的动画记录表所记录的动画展示持续时长。
由于事件1的动画展示时长就等于轮询定时器20c的轮询间隔时长,因此事件1对应的页面动态数据动画展示完毕后,此时轮询定时器20c又要开始轮询队列20b(此时队列20b中只包括事件2和事件3),用户终端从队列20b中提取出位于队列20b队首位置处的事件,即提取出事件2(提取出事件2后,队列20b中就只包括事件3,且队头指针向队尾方向后移,指向事件3所在的位置处,也即是事件3处于队列20b的队头)。同时确定事件2中动画记录表所记录的动画展示持续时长,将轮询定时器的轮询间隔时长由述事件1中的动画展示持续时长调整为事件2中的动画展示持续时长。同样地,调用对应的事件2中对应的动画执行函数对事件2中的页面动态数据动画处理,动画显示事件2中的页面动态数据。如图2中的界面20e所展示的,事件2中的页面动态数据是内容为“有什么可以帮助您的”的文本消息,对该页面动态数据动画处理后,该文本消息从屏幕的底部往上移动至屏幕中间,上述动画的耗时就等于事件2中的动画记录表所记录的动画展示持续时长。
由于事件2的动画展示时长就等于轮询定时器20c的轮询间隔时长,因此事件2对应的页面动态数据动画展示完毕后,此时轮询定时器20c又要开始轮询队列20b(此时队列20b中只包括事件3),用户终端从队列20b中提取出位于队列20b队首位置的事件,即提取出事件3(提取出事件3后,队头指针和队尾指针指向同一个位置,即队列20b就为空集)。同时确定事件3中动画记录表所记录的动画展示持续时长,将轮询定时器的轮询间隔时长由事件2中的动画展示持续时长调整为事件3中的动画展示持续时长。同样地,调用对应的事件3中对应的动画执行函数对事件3中的页面动态数据动画处理,动画显示事件3中的页面动态数据。如图2中的界面20f所展示的,事件3中的页面动态数据是内容为“按住说话”的按钮,对该页面动态数据动画处理后,该按钮从屏幕的底部为起点动画撑开,上述动画的耗时就等于事件3中的动画记录表所记录的动画展示持续时长。
由于事件3的动作展示时长就等于轮询定时器20c的轮询间隔时长,因此事件3对应的页面动态数据动画展示完毕后,此时轮询定时器20c又要开始轮询队列20b(此时队列为空集),队列中没有事件,将轮询定时器20c的轮询间隔时长由事件3中的动画展示持续时长调整为初始轮询间隔时长,以等待下一个动态数据作为事件插入队列20b中。
若用户关闭了该页面,后续可以在缓存中将队列20b、轮询定时器20c释放,这样不仅可以提高存储空间的利用率,还可以避免对其他页面造成副作用。上述动画时序控制方法可以是在MVVM(Model-View-ViewModel,模型视图模型)框架下开发出来的,Model代表业务和验证逻辑的数据模型,View代表界面视图,ViewModel是暴露公共属性和命令的视图的抽象,通过双向数据绑定把View层和Model层连接起来,完成呈现逻辑和控制状态。该架构下,开发者只需关注动画时序控制的业务逻辑,而不需要手动操作DOM结构,以降低开发难度和开发人员的工作量。
依据队列先进出的数据结构,以及根据每个动态数据的动画展示时长动态调整队列的轮询间隔时长,不仅可以保证动态数据按照正确时序动画显示,还不需要计算各页面动态数据的动画开始执行时间,能够降低计算量,进而节约计算资源。
其中,将页面动态数据封装为事件、创建队列的具体过程可以参见以下图3至图4所对应的实施例。
进一步地,请参见图3,是本发明实施例提供的一种页面处理方法的流程示意图。如图3所示,所述页面处理方法可以包括:
步骤S101,获取目标页面对应的具有先进先出特性的目标队列;所述目标队列包括目标事件集。
具体的,获取关于目标页面的访问请求,根据所述访问请求获取目标页面所包含的原始数据,其中原始数据可以是文本数据、图像数据、按钮数据、对话框数据等,由于从服务器(如上述图2所对应实施例中的服务器10a)发送来的原始数据是符合服务器格式的数据,为了使该原始数据可以展示在屏幕上,还需要将从服务器接收到的原始数据转换为前端显示格式的数据,将格式转换(由后台服务器格式转换为前端显示格式)后的原始数据称为页面数据。页面数据分为页面静态数据和页面动态数据,页面动态数据是具有动画展示效果的页面数据,页面静态数据是不具有动画展示效果的页面数据。识别每个页面数据的显示类型,显示类型包括动画显示类型和静态显示类型,将显示类型为动画显示类型的页面数据作为页面动态数据,当然显示类型为静态显示类型的页面数据是页面静态数据。对页面静态数据来说,可以通过绘制排版直接在屏幕上显示,若是页面动态数据,还需要调用动画执行函数,以及确定动画开始执行时间,以确保页面动态数据能够按照正确时序在屏幕上动画显示。
获取到页面动态数据后,可以为该目标页面创建一个具有先进先出特性的队列(如上述图2所对应实施例中的队列20b),称为目标队列,其中队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表,进行插入操作的端称为队尾端,进行删除操作的端称为队头端,此时的目标队列为空集合,即目标队列中没有任何队列元素。为目标队列设置轮询定时器(如上述图2所对应实施例中的轮询定时器20c),并初始化该轮询定时器,即是初始化轮询定时器的轮询间隔时长,称为原始轮询时长(例如,将原始轮询时长设置为60毫秒),轮询定时器是用于计时轮询目标队列,也就是每间隔轮询时长轮询定时器就轮询目标队列,检测目标队列中是否包含事件。原始轮询时长可以设置得尽可能的小,这样可以保证一旦有事件插入目标队列中,轮询定时器可以尽快轮询检测到该事件。
将获取到的页面动态数据分别封装为目标事件(如上述图2所对应实施例中的事件1或事件2或事件3),一个页面动态数据就要对应一个目标事件。将所有的目标事件组合为集合,称为目标事件集,为了保证页面动态数据的动画显示顺序,结合目标队列的先进先出特性,按照动画显示优先级将目标事件集中的目标事件依次添加至目标队列,若目标事件对应的动画显示优先级越高,那么就越早添加至目标队列中,需要说明的是,每次将目标事件添加至目标队列都是将目标事件从目标队列的队尾处插入。
下面以将一个页面动态数据封装为一个目标事件为例进行说明,若存在多个页面动态数据,那么可以采用相同的方式将多个页面动态数据分别封装为目标事件。识别页面动态数据的对象属性类型,将识别结果作为目标数据类型,对象属性类型包括:文本、图像、按钮、对话框、选择框等,从服务器获取的原始数据就携带了对应的对象属性类型,页面数据是由该原始数据格式转换而来,因此页面数据也携带了对应的对象属性类型,对终端来说,只需要将页面数据携带的对象属性类型作为目标数据类型,对象属性类型和目标数据类型均可以用字母、数字或者字母数字的组合来进行标识。根据目标数据类型确定页面动态数据对应的动画执行函数的函数名称,目标数据类型和动画执行函数是一一对应的关系,目标数据类型可以决定动画执行函数,动画执行函数的类型决定页面动态数据的动画展示方式。获取页面动态数据对应的显示时长,该显示时长是页面开发人员提前设置好的,且该显示时长是动画显示的持续时长。将上述目标数据类型、执行函数的函数名称、动画显示的显示时长一并添加至动画记录表中,将更新后的动画记录表和页面动态数据封装为目标事件,上述可知动画记录表是用于记录页面动态数据的动画显示属性。
采用上述方式,可以为每个页面动态数据设置对应的动画记录表,然后再将动画记录表和页面动态数据封装为目标事件,即可以得到每个页面动态数据对应的目标事件,进而将目标事件组合为目标事件集,再依次从目标队列的队尾处添加目标事件集中的目标事件。将页面动态数据封装为目标事件这个过程可以通过一个原始数据处理函数来完成,该原始数据处理函数的功能就是确定页面动态数据对应的目标数据类型,根据目标数据类型查找页面动态数据对应的动画执行函数,以及获取该页面动态数据对应的显示时长。这样不论是任何页面动态数据达到终端时,都可以调用该原始数据处理函数进行封装,适用于各种场景,通过复用原始数据处理函数,可以方便地对页面动态数据的封装功能进行维护以及后续的功能扩展。
值得注意的是,在将页面动态数据封装为目标事件这个过程中,轮询定时器仍旧是每间隔原始轮询时长后就轮询目标队列中是否存在目标事件,也就是说,只要没有删除轮询定时器,轮询定时器就一直每间隔轮询间隔时长轮询目标队列,其中轮询间隔时长可以动态调整。
步骤S102,从所述目标队列中的目标事件集中提取第一目标事件,并获取所述第一目标事件中的第一页面动态数据和第一显示时长。
具体的,轮询定时器每间隔原始轮询时长就轮询目标队列,若目标事件集已经添加至目标队列中,即若检测到目标队列不再是一个空队列时,则从目标队列中的目标事件集中提取出动画显示优先级最高的目标事件,作为第一目标事件,依据目标队列的先进先出特性,提取出来的第一目标事件必然是当前目标队列中动画显示优先级最高的目标事件,且提取出来的第一目标事件也必然是当前位于目标队列队首位置处的目标事件。提取第一目标事件中的动画记录表(称为第一动画记录表)和页面动态数据(称为第一页面动态数据),从第一动画记录表中获取第一页面动态数据对应的显示时长(称为第一显示时长)。
需要说明的是,由于目标集合中的目标事件是存储在目标队列中的,因此第一次从目标事件集中提取目标事件时,提取的是目标事件集中(也是目标队列中)动画显示优先级最高的目标事件,若后续还需要从目标队列中提取目标事件时,虽然提取的仍旧是当前目标队列中动画显示优先级最高的目标事件,但已不再是目标事件集中动画显示优先级最高的目标事件了,或者说,目标队列中动画显示优先级最高的目标事件是动态变化的(只要目标事件处于目标队列的队首位置处,该目标事件就是目标队列中当前动画显示优先级最高的目标事件),但目标事件集中动画显示优先级最高的目标事件只有一个(即是第一目标事件)。从目标队列中提取出第一目标事件后,目标队列中就不再包含第一目标事件。
步骤S103,将所述目标队列的轮询间隔时长设置为所述第一显示时长,并基于所述第一显示时长动画显示所述第一页面动态数据。
具体的,将轮询定时器的轮询间隔时长由原始轮询时长调整为第一显示时长,由于轮询定时器是用于轮询目标队列,因此调整轮询定时器的轮询间隔时长即是调整目标队列的轮询间隔时长,即是将目标队列的轮询间隔时长调整为第一显示时长。根据第一动画记录表中的函数名称获取该函数名称对应的函数(称为第一函数,第一函数是动画执行函数),并获取第一目标事件中第一页面动态数据对应的动画展示延迟时长(称为第一延迟时长),该第一延迟时长是由页面开发人员提前设置好的,设置延迟时长是为了预留时间给用户接收上一个页面动态数据对应的内容(延长时长也可以设置为0,即是没有延迟直接动画播放页面动态数据),因为显示时长仅仅是动画显示页面数据所耗费的时间,对用户来说,还需要一段时间来接收该页面动态数据对应的内容。
在将目标队列的轮询间隔时长调整为第一显示时长后,就开始计时统计时长(称为等待时长),当等待时长等于第一延迟时长时,说明此时第一页面动态数据可以开始动画显示,即是调用第一函数,并将第一显示时长作为第一函数的函数参数,对第一页面动态数据进行动画处理,使得第一页面动态数据可以按照第一函数对应的动画显示方式以及第一显示时长在屏幕中动画显示,例如,从屏幕右上角飞入,从屏幕底部移动等。可以知道,终端中已经存储了多个动画执行函数,将多个动画执行函数称为动画执行函数集合。该动画执行函数集合可以是服务器向终端发送关于目标页面的原始数据时,一并发送至终端的。终端一旦获取到该动画执行函数集合就可以存储在本地,后续终端还需要访问其他页面时,服务器就不必再发送该动画执行函数集合了。
步骤S104,当所述目标队列的轮询间隔时长达到所述第一显示时长时,从所述目标队列中提取第二目标事件,并获取所述第二目标事件中的第二页面动态数据和第二显示时长。
具体的,由于目标队列的轮询间隔时长已经设置为第一显示时长,而第一页面动态数据已经动画显示完毕,且所动画展示所耗费的时长就等于第一显示时长,即当第一页面动态数据显示完毕时,目标队列的轮询间隔时长就达到第一显示时长,或者说当第一页面动态数据显示完毕时,轮询定时器已经间隔了第一显示时长,因此轮询定时器又将开始轮询目标队列。若目标队列不为空集,从目标队列中提取目标事件,作为第二目标事件。依据目标队列的先进先出特性,提取出来的第二目标事件必然是当前目标队列中动画显示优先级最高的目标事件,且提取出来的第二目标事件也必然是当前位于目标队列队首处的目标队列,且上述第一目标事件和第二目标事件在目标队列中的位置必然相邻。从目标队列中提取出第二目标事件后,目标队列中就不再包含第二目标事件。提取第二目标事件中的动画记录表(称为第二动画记录表)和页面动态数据(称为第二页面动态数据),从第二动画记录表中获取第二页面动态数据对应的显示时长(称为第二显示时长)。
步骤S105,将所述目标队列的轮询间隔时长设置为所述第二显示时长,并基于所述第二显示时长动画显示所述第二页面动态数据。
具体的,将轮询定时器的轮询间隔时长由由第一显示时长调整为第二显示时长,即是将目标队列的轮询间隔时长调整为第二显示时长。根据第二动画记录表中的函数名称获取该函数名称对应的函数(称为第二函数,第二函数就是动画执行函数),并获取第二目标事件中第二页面动态数据对应的动画展示延迟时长(称为第二延迟时长)。同时,在将目标队列的轮询间隔时长调整为第二显示时长时,就开始计时统计时长(称为辅助时长),当辅助时长等于第二延迟时长时,说明此时第二页面动态数据可以开始动画显示,即是调用第二函数,并将第二显示时长作为第二函数的函数参数,对第二页面动态数据进行动画处理,使得第二页面动态数据可以按照第二函数对应的动画显示方式以及第二显示时长在屏幕中动画显示。
举例来说,若设定的轮询定时器的原始轮询间隔时长等于60毫秒,目标队列中的目标事件集中包括目标事件A(目标事件A中包括页面动态数据A和显示时长为1秒钟)、目标事件B(目标事件B中包括页面动态数据B和显示时长为2秒钟)和目标事件C(目标事件C中包括页面动态数据C和显示时长为3秒钟),且目标事件A的动画显示优先级大于目标事件B,目标事件B的动画显示优先级又大于目标事件C,也即是目标事件A处于目标队列的队首处,目标事件B与目标事件A相邻,最后目标事件C处于目标队列的队尾处。在创建了目标队列后每间隔60毫秒就轮询目标队列,检测目标队列中是否包含目标事件。检测到目标事件A是目标事件集中动画显示优先级最高的目标事件(目标事件A也是处于目标队列队首处的目标事件、也是当前目标队列中动画显示优先级最高的目标事件、也是目标事件集中动画显示优先级最高的目标事件),因此就从目标队列中提取出目标事件A(提取后目标事件A就不存在于目标队列中了),由于目标事件A对应的显示时长为1秒,因此将目标队列的轮询间隔时长(轮询定时器的轮询间隔时长)由60毫秒调整为1秒,并以显示时长1秒显示目标事件A对应的页面动态数据A。
1秒后页面动态数据A动画显示完毕,且目标队列的轮询间隔时长也达到了1秒,因此继续轮询目标队列,此时目标事件B处于目标队列的队首位置处(此时目标事件B在目标队列中的动画显示优先级最高),因此从目标队列中提取出目标事件B(同样,提取后目标事件B也不存在于目标队列中了),由于目标事件B对应的显示时长为2秒,将目标队列的轮询间隔时长(轮询定时器的轮询间隔时长)由1秒调整为2秒,并以显示时长2秒显示目标事件B对应的页面动态数据B。
2秒后页面动态数据B动画显示完毕,且目标队列的轮询间隔时长也达到了2秒,因此继续轮询目标队列,此时目标事件C处于目标队列的队首位置处(此时目标事件C在目标队列中的动画显示优先级最高),因此从目标队列中提取出目标事件C(同样,提取后目标事件C也不存在于目标队列中了),由于目标事件C对应的显示时长为3秒,将目标队列的轮询间隔时长(轮询定时器的轮询间隔时长)由2秒调整为3秒,并以显示时长3秒显示目标事件C对应的页面动态数据C。
上述步骤S102-步骤S105是以提取目标队列中的两个目标事件为例进行说明,若目标队列中还存在目标事件,则按照上述方式从目标队列的队首位置处继续提取目标事件,并将目标队列的轮询间隔时长设置为提取出来的目标事件对应的显示时长,动画显示提取出来的目标事件中的页面动态数据,不断地循环,直至目标页面显示在屏幕中,或者用户关闭目标页面。
需要说明的是,只要用户没有关闭目标页面,或者目标页面还没有在屏幕中显示完毕,终端是一直处于等待接收服务器发送的页面数据的状态,当接收到关于目标页面最新页面动态数据时,采用上述方式将最新页面动态数据封装为目标事件(称为最新目标事件),同样地将最新目标事件添加至目标队列的队尾处,将最新页面动态数据封装为最新目标事件的具体过程可以参见上述步骤S101。终端在处理多个页面动态数据(接收页面动态数据,封装为目标事件并添加至目标队列,动画显示该页面动态数据)时,多个页面动态数据是采用并行处理的方式,例如在动画显示页面动态数据1时,将页面动态数据2封装为目标事件,同时还在接收页面动态数据3。每接收到一个最新页面动态数据,就封装为最新目标事件,添加至目标队列的队尾处。
通过将页面动态数据添加至目标队列中,并动态调整目标队列的轮询间隔时长,使得所有的页面动态数据不仅可以按照动画显示优先级的先后顺序动画展示,而且不需要大量的计算,就可以保证各页面动态数据的动画展示开始时间的准确性。
请参见图4,是本发明实施例提供的一种页面处理方法的流程示意图,该页面处理方法包括以下步骤:
步骤S201,获取目标页面对应的具有先进先出特性的目标队列;所述目标队列包括目标事件集。
步骤S202,从所述目标队列中的目标事件集中提取第一目标事件,并获取所述第一目标事件中的第一页面动态数据和第一显示时长。
步骤S203,将所述目标队列的轮询间隔时长设置为所述第一显示时长,并基于所述第一显示时长动画显示所述第一页面动态数据。
步骤S204,当所述目标队列的轮询间隔时长达到所述第一显示时长时,从所述目标队列中提取第二目标事件,并获取所述第二目标事件中的第二页面动态数据和第二显示时长,
步骤S205,将所述目标队列的轮询间隔时长设置为所述第二显示时长,并基于所述第二显示时长动画显示所述第二页面动态数据。
其中,步骤S201-步骤S205的具体功能实现方式可以参见上述图2对应实施例中的步骤S101-步骤S105,这里不再进行赘述。
步骤S206,当所述目标队列的轮询间隔时长达到所述第二显示时长,且所述目标队列为空集时,将所述目标队列的轮询间隔时长调整为所述原始轮询时长。
具体的,由于此时目标队列的轮询间隔时长已经设置为第二显示时长,而第二页面动态数据已经动画显示完毕,且所动画展示所耗费的时长就等于第二显示时长,即当第二页面动态数据显示完毕时,目标队列的轮询间隔时长就达到第二显示时长,或者说当第二页面动态数据显示完毕时,轮询定时器已经间隔了第二显示时长,因此轮询定时器又将开始轮询目标队列。若目标队列为空集合,即目标队列中不包含任何队列元素,将目标队列的轮询间隔时长调整为原始轮询时长,即是将轮询定时器的轮询间隔时长由第二显示时长调整为原始轮询时长。换句话说,只要轮询定时器轮询到目标队列为空集,那么就要将轮询定时器的轮询间隔时长调整为原始轮询时长。判断目标队列是否为空集合的方式可以是判断目标队列的队头指针和队尾指针是否指向目标队列中的同一个位置,若是,说明目标队列是空集合;否则,目标队列是非空集合。当然若目标队列不为空集,从目标队列中继续提取目标事件,继续动画显示提取出来的目标事件中的页面动态数据。
目标队列为空集不能说明该目标页面已经显示完毕,可能是页面中只包含少量的页面动态数据,或者是终端还未接收到服务器发送的原始数据。将轮询定时器的轮询间隔时长调整回原始轮询间隔时长同样是为了一旦有目标事件添加至目标队列中,可以尽快检测到该目标事件。
仍以上述举例来说明,若设定轮询定时器的原始轮询间隔时长等于60毫秒,目标队列中的目标事件集中包括目标事件A(目标事件A中包括页面动态数据A和显示时长为1秒钟)、目标事件B(目标事件B中包括页面动态数据B和显示时长为2秒钟)和目标事件C(目标事件C中包括页面动态数据C和显示时长为3秒钟)。从目标队列中提取出目标事件C后,就将目标队列的轮询间隔时长(轮询定时器的轮询间隔时长)由2秒调整为3秒,并以显示时长3秒显示目标事件C对应的页面动态数据C。3秒后页面动态数据C动画显示完毕,且目标队列的轮询间隔时长也达到了3秒,因此继续轮询目标队列,此时目标队列中不存在任何队列元素,即目标队列是一个空集,将目标队列的轮询间隔时长调整为60毫秒,这样一旦有新的目标事件插入目标队列中,可以尽快的轮询检测到该目标事件。
步骤S207,当接收到关闭所述目标页面的目标关闭指令时,根据所述目标关闭指令在缓存中释放所述目标队列和所述轮询定时器。
具体的,用户点击目标页面上的“关闭”按钮,生成目标关闭指令并接收该目标关闭指令,该目标关闭指令是用于指示关闭目标页面。根据该目标关闭指令,释放缓存中的目标队列和轮询定时器,以节约存储空间,同时不会对用户即将访问的下一个页面造成副作用。这是因为若采用传统定时方式播放目标页面动态数据,实现定时功能是采用定时函数setTimeout。若目标页面并未显示完毕,用户就关闭了该页面而访问了其他页面,在访问其他页面过程中,若目标页面中设置的定时间到达时,即使用户已经关闭了目标页面,定时函数setTimeout仍旧要将定时到达对应的页面动态数据进行动画显示,这个时候当前访问的其他页面就会报错,进而对该页面造成副作用。采用本发明,由于要删除目标队列,因此目标队列中的事件也要被一并删除,也并不采用定时函数setTimeout使页面动态数据定时播放,这样用户访问其他页面时,也就不会报错,也不会对其他页面造成副作用。
上述可知,将需要动画显示的动态数据分别封装为事件并存储至队列中,依据队列先进先出的数据结构,以及根据每个动态数据的动画展示时长动态调整队列的轮询间隔时长,按照该轮询间隔时长从队列中提取出事件用于动画显示动态数据。这样只需要关注每个动态数据的动画显示时长,从而解除了各动态数据的开始展示时间计算的依赖关系,不仅可以保证动态数据按照正确时序动画显示,还能够降低计算量,进而节约计算资源。
进一步的,请参见图5,是本发明实施例提供的一种页面处理装置的结构示意图。如图5所示,页面处理装置1可以包括:获取模块11、提取模块12、设置模块13、显示模块14。
获取模块11,用于获取目标页面对应的具有先进先出特性的目标队列;所述目标队列包括目标事件集;
提取模块12,用于从所述目标队列中的目标事件集中提取第一目标事件,并获取所述第一目标事件中的第一页面动态数据和第一显示时长;
设置模块13,用于将所述目标队列的轮询间隔时长设置为所述第一显示时长;
显示模块14,用于基于所述第一显示时长动画显示所述第一页面动态数据;
所述设置模块13,还用于当所述目标队列的轮询间隔时长达到所述第一显示时长时,从所述目标队列中提取第二目标事件,并获取所述第二目标事件中的第二页面动态数据和第二显示时长;
所述设置模块13,还用于将所述目标队列的轮询间隔时长设置为所述第二显示时长,并基于所述第二显示时长动画显示所述第二页面动态数据。
其中,获取模块11、提取模块12、设置模块13、显示模块14的具体功能实现方式可以参见上述图3对应实施例中的步骤S101-步骤S105,这里不再进行赘述。
请参见图5,获取模块11可以包括:第一获取单元111、第二获取单元112、封装单元113、组合单元114。
第一获取单元111,用于获取所述目标页面的访问请求;
第二获取单元112,用于根据所述访问请求获取所述目标页面中动画显示的页面动态数据;
所述第一获取单元111,还用于创建所述目标队列;
封装单元113,用于将所述页面动态数据封装为目标事件;
组合单元114,用于将所述目标事件组合为所述目标事件集合,并按照动画显示优先级顺序将所述目标事件集合中的目标事件依次添加至所述目标队列;所述目标事件包括所述页面动态数据和动画记录表;所述动画记录表是用于记录所述页面动态数据的动画显示属性;所述动画显示属性包括页面动态数据的显示时长。
其中,第一获取单元111、第二获取单元112、封装单元113、组合单元114的具体功能实现方式可以参见上述图3对应实施例中的步骤S101,这里不再进行赘述。
请参见图5,第二获取单元112可以包括:获取子单元1121、识别子单元1122。
获取子单元1121,用于根据所述目标页面访问请求获取所述目标页面所包含的页面数据;
识别子单元1122,用于识别所述页面数据对应的显示类型,将所述显示类型为动画显示类型的页面数据确定为所述页面动态数据。
其中,获取子单元1121、识别子单元1122的具体功能实现方式可以参见上述图3对应实施例中的步骤S101,这里不再进行赘述。
请参见图5,封装单元113可以包括:确定子单元1131、封装子单元1132。
确定子单元1131,用于识别所述页面动态数据的对象属性类型,作为目标数据类型;
封装子单元1132,用于根据所述目标数据类型,确定所述页面动态数据对应的动画执行函数的函数名称,并获取所述页面动态数据对应的显示时长;
所述封装子单元1132,还用于为所述页面动态数据创建动画记录表,将所述目标数据类型、所述函数名称、所述显示时长均添加至所述动画记录表;
所述封装子单元1132,还用于将更新后的动画记录表和所述页面动态数据封装为所述目标事件。
其中,确定子单元1131、封装子单元1132的具体功能实现方式可以参见上述图3对应实施例中的步骤S101,这里不再进行赘述。
请参见图5,显示模块14可以包括:提取单元141、显示单元142。
提取单元141,用于从所述第一目标事件中提取第一动画记录表,获取所述第一动画记录表中的函数名称对应的第一函数,并获取所述第一目标事件对应的第一延迟时长;
显示单元142,用于当等待时长等于所述第一延迟时长时,根据所述第一函数和所述第一动画记录表中的第一显示时长,将所述第一页面动态数据进行动画处理,以按照所述第一函数对应的动画显示方式和所述第一显示时长动画显示所述第一页面动态数据;所述等待时长是将所述目标队列的轮询间隔时长设置为所述第一显示时长后开始计时统计所得到的时长。
其中,提取单元141、显示单元142的具体功能实现方式可以参见上述图3对应实施例中的步骤S103,这里不再进行赘述。
请参见图5,页面处理装置1可以包括:获取模块11、提取模块12、设置模块13、显示模块14;还可以包括:轮询模块15、通知模块16。
轮询模块15,用于为所述目标队列设置轮询定时器,为所述轮询定时器设置原始轮询时长,并在所述轮询定时器间隔所述原始轮询时长后,轮询所述目标队列;
通知模块16,用于当所述第一目标事件是所述目标事件集中动画显示优先级最高的目标事件时,通知所述提取模块12执行对应操作。
其中,轮询模块15、通知模块16的具体功能实现方式可以参见上述图3对应实施例中的步骤S101,这里不再进行赘述。
请参见图5,页面处理装置1可以包括:获取模块11、提取模块12、设置模块13、显示模块14、轮询模块15、通知模块16;还可以包括:调整模块17。
调整模块17,用于当所述目标队列的轮询间隔时长达到所述第二显示时长,且所述目标队列为空集时,将所述目标队列的轮询间隔时长调整为所述原始轮询时长。
其中,调整模块17的具体功能实现方式可以参见上述图4对应实施例中的步骤S206,这里不再进行赘述。
请参见图5,页面处理装置1可以包括:获取模块11、提取模块12、设置模块13、显示模块14、轮询模块15、通知模块16、调整模块17;还可以包括:关闭模块18。
关闭模块18,用于当接收到关闭所述目标页面的目标关闭指令时,根据所述目标关闭指令在缓存中释放所述目标队列和所述轮询定时器。
其中,关闭模块18的具体功能实现方式可以参见上述图4对应实施例中的步骤S207,这里不再进行赘述。
请参见图5,页面处理装置1可以包括:获取模块11、提取模块12、设置模块13、显示模块14、轮询模块15、通知模块16、调整模块17、关闭模块18;还可以包括:添加模块19。
添加模块19,用于当接收到目标页面的最新页面动态数据时,将所述最新页面动态数据封装为最新目标事件,并将所述最新目标事件添加至所述目标队列的队尾。
其中,添加模块19的具体功能实现方式可以参见上述图3对应实施例中的步骤S105,这里不再进行赘述。
上述可知,将需要动画显示的动态数据分别封装为事件并存储至队列中,依据队列先进先出的数据结构,以及根据每个动态数据的动画展示时长动态调整队列的轮询间隔时长,按照该轮询间隔时长从队列中提取出事件用于动画显示动态数据。这样只需要关注每个动态数据的动画显示时长,从而解除了各动态数据的开始展示时间计算的依赖关系,不仅可以保证动态数据按照正确时序动画显示,还能够降低计算量,进而节约计算资源。
进一步地,请参见图6,是本发明实施例提供的一种电子设备的结构示意图。如图6所示,上述图6中的页面处理装置1可以应用于所述电子设备1000,所述电子设备1000可以包括:处理器1001,网络接口1004和存储器1005,此外,所述电子设备1000还可以包括:用户接口1003,和至少一个通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。其中,用户接口1003可以包括显示屏(Display)、键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。存储器1005可选的还可以是至少一个位于远离前述处理器1001的存储装置。如图6所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及设备控制应用程序。
在图6所示的电子设备1000中,网络接口1004可提供网络通讯功能;而用户接口1003主要用于为用户提供输入的接口;而处理器1001可以用于调用存储器1005中存储的设备控制应用程序,以实现:
获取目标页面对应的具有先进先出特性的目标队列;所述目标队列包括目标事件集;
从所述目标队列中的目标事件集中提取第一目标事件,并获取所述第一目标事件中的第一页面动态数据和第一显示时长;
将所述目标队列的轮询间隔时长设置为所述第一显示时长,并基于所述第一显示时长动画显示所述第一页面动态数据;
当所述目标队列的轮询间隔时长达到所述第一显示时长时,从所述目标队列中提取第二目标事件,并获取所述第二目标事件中的第二页面动态数据和第二显示时长;
将所述目标队列的轮询间隔时长设置为所述第二显示时长,并基于所述第二显示时长动画显示所述第二页面动态数据。
在一个实施例中,所述处理器1001在执行获取目标页面对应的具有先进先出特性的目标队列时,具体执行以下步骤:
获取所述目标页面的访问请求,根据所述访问请求获取所述目标页面中动画显示的页面动态数据,并创建所述目标队列;
将所述页面动态数据封装为目标事件,将所述目标事件组合为所述目标事件集合,并按照动画显示优先级顺序将所述目标事件集合中的目标事件依次添加至所述目标队列;所述目标事件包括所述页面动态数据和动画记录表;所述动画记录表是用于记录所述页面动态数据的动画显示属性;所述动画显示属性包括页面动态数据的显示时长。
在一个实施例中,所述处理器1001在执行根据所述访问请求获取所述目标页面中动画显示的页面动态数据时,具体执行以下步骤:
根据所述目标页面访问请求获取所述目标页面所包含的页面数据;
识别所述页面数据对应的显示类型,将所述显示类型为动画显示类型的页面数据确定为所述页面动态数据。
在一个实施例中,所述处理器1001在执行将所述页面动态数据封装为目标事件时,具体执行以下步骤:
识别所述页面动态数据的对象属性类型,作为目标数据类型;
根据所述目标数据类型,确定所述页面动态数据对应的动画执行函数的函数名称,并获取所述页面动态数据对应的显示时长;
为所述页面动态数据创建动画记录表,将所述目标数据类型、所述函数名称、所述显示时长均添加至所述动画记录表;
将更新后的动画记录表和所述页面动态数据封装为所述目标事件。
在一个实施例中,所述处理器1001在执行基于所述第一显示时长动画显示所述第一页面动态数据时,具体执行以下步骤:
从所述第一目标事件中提取第一动画记录表,获取所述第一动画记录表中的函数名称对应的第一函数,并获取所述第一目标事件对应的第一延迟时长;
当等待时长等于所述第一延迟时长时,根据所述第一函数和所述第一动画记录表中的第一显示时长,将所述第一页面动态数据进行动画处理,以按照所述第一函数对应的动画显示方式和所述第一显示时长动画显示所述第一页面动态数据;所述等待时长是将所述目标队列的轮询间隔时长设置为所述第一显示时长后开始计时统计所得到的时长。
在一个实施例中,所述处理器1001还执行以下步骤:
为所述目标队列设置轮询定时器,为所述轮询定时器设置原始轮询时长,并在所述轮询定时器间隔所述原始轮询时长后,轮询所述目标队列;
当所述第一目标事件是所述目标事件集中动画显示优先级最高的目标事件时,执行从所述目标队列中的目标事件集中提取第一目标事件的步骤。
在一个实施例中,所述处理器1001还执行以下步骤:
当所述目标队列的轮询间隔时长达到所述第二显示时长,且所述目标队列为空集时,将所述目标队列的轮询间隔时长调整为所述原始轮询时长。
在一个实施例中,所述处理器1001还执行以下步骤:
当接收到关闭所述目标页面的目标关闭指令时,根据所述目标关闭指令在缓存中释放所述目标队列和所述轮询定时器。
在一个实施例中,所述处理器1001还执行以下步骤:
当接收到目标页面的最新页面动态数据时,将所述最新页面动态数据封装为最新目标事件,并将所述最新目标事件添加至所述目标队列的队尾。
上述可知,将需要动画显示的动态数据分别封装为事件并存储至队列中,依据队列先进先出的数据结构,以及根据每个动态数据的动画展示时长动态调整队列的轮询间隔时长,按照该轮询间隔时长从队列中提取出事件用于动画显示动态数据。这样只需要关注每个动态数据的动画显示时长,从而解除了各动态数据的开始展示时间计算的依赖关系,不仅可以保证动态数据按照正确时序动画显示,还能够降低计算量,进而节约计算资源。
应当理解,本发明实施例中所描述的电子设备1000可执行前文图3到图4所对应实施例中对所述页面处理方法的描述,也可执行前文图5所对应实施例中对所述页面处理装置1的描述,在此不再赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。
此外,这里需要指出的是:本发明实施例还提供了一种计算机存储介质,且所述计算机存储介质中存储有前文提及的页面处理装置1所执行的计算机程序,且所述计算机程序包括程序指令,当所述处理器执行所述程序指令时,能够执行前文图3到图4所对应实施例中对所述页面处理方法的描述,因此,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本发明所涉及的计算机存储介质实施例中未披露的技术细节,请参照本发明方法实施例的描述。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。

Claims (15)

1.一种页面处理方法,其特征在于,包括:
获取目标页面对应的具有先进先出特性的目标队列;所述目标队列包括目标事件集;
从所述目标队列中的目标事件集中提取第一目标事件,并获取所述第一目标事件中的第一页面动态数据和第一显示时长;
将所述目标队列的轮询间隔时长设置为所述第一显示时长,并基于所述第一显示时长动画显示所述第一页面动态数据;
当所述目标队列的轮询间隔时长达到所述第一显示时长时,从所述目标队列中提取第二目标事件,并获取所述第二目标事件中的第二页面动态数据和第二显示时长;
将所述目标队列的轮询间隔时长设置为所述第二显示时长,并基于所述第二显示时长动画显示所述第二页面动态数据。
2.根据权利要求1所述的方法,其特征在于,所述获取目标页面对应的具有先进先出特性的目标队列,包括:
获取所述目标页面的访问请求,根据所述访问请求获取所述目标页面中动画显示的页面动态数据,并创建所述目标队列;
将所述页面动态数据封装为目标事件,将所述目标事件组合为目标事件集合,并按照动画显示优先级顺序将所述目标事件集合中的目标事件依次添加至所述目标队列;所述目标事件包括所述页面动态数据和动画记录表;所述动画记录表是用于记录所述页面动态数据的动画显示属性;所述动画显示属性包括页面动态数据的显示时长。
3.根据权利要求2所述的方法,其特征在于,所述根据所述访问请求获取所述目标页面中动画显示的页面动态数据,包括:
根据所述目标页面访问请求获取所述目标页面所包含的页面数据;
识别所述页面数据对应的显示类型,将所述显示类型为动画显示类型的页面数据确定为所述页面动态数据。
4.根据权利要求2所述的方法,其特征在于,所述将所述页面动态数据封装为目标事件,包括:
识别所述页面动态数据的对象属性类型,作为目标数据类型;
根据所述目标数据类型,确定所述页面动态数据对应的动画执行函数的函数名称,并获取所述页面动态数据对应的显示时长;
为所述页面动态数据创建动画记录表,将所述目标数据类型、所述函数名称、所述显示时长均添加至所述动画记录表;
将更新后的动画记录表和所述页面动态数据封装为所述目标事件。
5.根据权利要求1所述的方法,其特征在于,所述基于所述第一显示时长动画显示所述第一页面动态数据,包括:
从所述第一目标事件中提取第一动画记录表,获取所述第一动画记录表中的函数名称对应的第一函数,并获取所述第一目标事件对应的第一延迟时长;
当等待时长等于所述第一延迟时长时,根据所述第一函数和所述第一动画记录表中的第一显示时长,将所述第一页面动态数据进行动画处理,以按照所述第一函数对应的动画显示方式和所述第一显示时长动画显示所述第一页面动态数据;所述等待时长是将所述目标队列的轮询间隔时长设置为所述第一显示时长后开始计时统计所得到的时长。
6.根据权利要求1所述的方法,其特征在于,还包括:
为所述目标队列设置轮询定时器,为所述轮询定时器设置原始轮询时长,并在所述轮询定时器间隔所述原始轮询时长后,轮询所述目标队列;
当所述第一目标事件是所述目标事件集中动画显示优先级最高的目标事件时,执行从所述目标队列中的目标事件集中提取第一目标事件的步骤。
7.根据权利要求1所述的方法,其特征在于,还包括:
当所述目标队列的轮询间隔时长达到所述第二显示时长,且所述目标队列为空集时,将所述目标队列的轮询间隔时长调整为原始轮询时长。
8.根据权利要求6所述的方法,其特征在于,还包括:
当接收到关闭所述目标页面的目标关闭指令时,根据所述目标关闭指令在缓存中释放所述目标队列和所述轮询定时器。
9.根据权利要求1所述的方法,其特征在于,还包括:
当接收到目标页面的最新页面动态数据时,将所述最新页面动态数据封装为最新目标事件,并将所述最新目标事件添加至所述目标队列的队尾。
10.一种页面处理装置,其特征在于,包括:
获取模块,用于获取目标页面对应的具有先进先出特性的目标队列;所述目标队列包括目标事件集;
提取模块,用于从所述目标队列中的目标事件集中提取第一目标事件,并获取所述第一目标事件中的第一页面动态数据和第一显示时长;
设置模块,用于将所述目标队列的轮询间隔时长设置为所述第一显示时长;
显示模块,用于基于所述第一显示时长动画显示所述第一页面动态数据;
所述设置模块,还用于当所述目标队列的轮询间隔时长达到所述第一显示时长时,从所述目标队列中提取第二目标事件,并获取所述第二目标事件中的第二页面动态数据和第二显示时长;
所述设置模块,还用于将所述目标队列的轮询间隔时长设置为所述第二显示时长,并基于所述第二显示时长动画显示所述第二页面动态数据。
11.根据权利要求10所述的装置,其特征在于,所述获取模块,包括:
第一获取单元,用于获取所述目标页面的访问请求;
第二获取单元,用于根据所述访问请求获取所述目标页面中动画显示的页面动态数据;
所述第一获取单元,还用于创建所述目标队列;
封装单元,用于将所述页面动态数据封装为目标事件;
组合单元,用于将所述目标事件组合为目标事件集合,并按照动画显示优先级顺序将所述目标事件集合中的目标事件依次添加至所述目标队列;所述目标事件包括所述页面动态数据和动画记录表;所述动画记录表是用于记录所述页面动态数据的动画显示属性;所述动画显示属性包括页面动态数据的显示时长。
12.根据权利要求11所述的装置,其特征在于,所述第二获取单元,包括:
获取子单元,用于根据所述目标页面访问请求获取所述目标页面所包含的页面数据;
识别子单元,用于识别所述页面数据对应的显示类型,将所述显示类型为动画显示类型的页面数据确定为所述页面动态数据。
13.根据权利要求11所述的装置,其特征在于,所述封装单元,包括:
确定子单元,用于识别所述页面动态数据的对象属性类型,作为目标数据类型;
封装子单元,用于根据所述目标数据类型,确定所述页面动态数据对应的动画执行函数的函数名称,并获取所述页面动态数据对应的显示时长;
所述封装子单元,还用于为所述页面动态数据创建动画记录表,将所述目标数据类型、所述函数名称、所述显示时长均添加至所述动画记录表;
所述封装子单元,还用于将更新后的动画记录表和所述页面动态数据封装为所述目标事件。
14.一种电子设备,其特征在于,包括:处理器和存储器;
所述处理器和存储器相连,其中,所述存储器用于存储程序代码,所述处理器用于调用所述程序代码,以执行如权利要求1-9任一项所述的方法。
15.一种计算机存储介质,其特征在于,所述计算机存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时,执行如权利要求1-9任一项所述的方法。
CN201811183435.9A 2018-10-11 2018-10-11 一种页面处理方法、装置以及相关设备 Active CN109491803B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811183435.9A CN109491803B (zh) 2018-10-11 2018-10-11 一种页面处理方法、装置以及相关设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811183435.9A CN109491803B (zh) 2018-10-11 2018-10-11 一种页面处理方法、装置以及相关设备

Publications (2)

Publication Number Publication Date
CN109491803A CN109491803A (zh) 2019-03-19
CN109491803B true CN109491803B (zh) 2021-08-24

Family

ID=65690141

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811183435.9A Active CN109491803B (zh) 2018-10-11 2018-10-11 一种页面处理方法、装置以及相关设备

Country Status (1)

Country Link
CN (1) CN109491803B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112035203B (zh) * 2020-08-28 2023-04-07 北京浪潮数据技术有限公司 一种接口轮询方法、装置、设备及存储介质

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2902820A1 (en) * 2013-03-08 2014-09-12 Neil VOSS Method and apparatus for camera control using a virtual button and gestures
CN105677314A (zh) * 2015-12-24 2016-06-15 小米科技有限责任公司 滚动事件的处理方法、装置和设备
CN106648320A (zh) * 2016-12-20 2017-05-10 天脉聚源(北京)传媒科技有限公司 一种图片轮询展示的动态提示的方法及装置
CN107291946A (zh) * 2017-07-13 2017-10-24 深圳乐信软件技术有限公司 大数据etl任务调度方法及装置
CN108009027A (zh) * 2017-11-23 2018-05-08 北京百度网讯科技有限公司 队列消息一致性的实现方法、装置、设备及存储介质
CN108228300A (zh) * 2018-01-02 2018-06-29 武汉斗鱼网络科技有限公司 一种控制内容实时刷新的方法及装置
CN108319509A (zh) * 2017-12-20 2018-07-24 瑞斯康达科技发展股份有限公司 一种事件管理方法、系统及主控设备
CN108399036A (zh) * 2017-02-06 2018-08-14 中兴通讯股份有限公司 一种控制方法、装置及终端

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2902820A1 (en) * 2013-03-08 2014-09-12 Neil VOSS Method and apparatus for camera control using a virtual button and gestures
CN105677314A (zh) * 2015-12-24 2016-06-15 小米科技有限责任公司 滚动事件的处理方法、装置和设备
CN106648320A (zh) * 2016-12-20 2017-05-10 天脉聚源(北京)传媒科技有限公司 一种图片轮询展示的动态提示的方法及装置
CN108399036A (zh) * 2017-02-06 2018-08-14 中兴通讯股份有限公司 一种控制方法、装置及终端
CN107291946A (zh) * 2017-07-13 2017-10-24 深圳乐信软件技术有限公司 大数据etl任务调度方法及装置
CN108009027A (zh) * 2017-11-23 2018-05-08 北京百度网讯科技有限公司 队列消息一致性的实现方法、装置、设备及存储介质
CN108319509A (zh) * 2017-12-20 2018-07-24 瑞斯康达科技发展股份有限公司 一种事件管理方法、系统及主控设备
CN108228300A (zh) * 2018-01-02 2018-06-29 武汉斗鱼网络科技有限公司 一种控制内容实时刷新的方法及装置

Also Published As

Publication number Publication date
CN109491803A (zh) 2019-03-19

Similar Documents

Publication Publication Date Title
CN109032738B (zh) 多媒体播放控制方法、装置、终端及存储介质
US9773069B2 (en) Pre-fetching of network page content in a browser application
CN109947512B (zh) 一种文本适配显示方法、装置、服务器及存储介质
CN109327727B (zh) 一种WebRTC中的直播流处理方法及推流客户端
US9098505B2 (en) Framework for media presentation playback
US10515142B2 (en) Method and apparatus for extracting webpage information
EP3278250B1 (en) Server-based conversion of autoplay content to click-to-play content
CN111143725A (zh) 页面生成方法、装置和电子设备
JP7263660B2 (ja) ビデオ処理方法、装置、電子機器及び記憶媒体
CN107580039B (zh) 传输进度的显示方法、装置及终端
CN112055254B (zh) 视频播放的方法、装置、终端及存储介质
CN111131848A (zh) 一种视频直播数据处理方法、客户端及服务器
CN110827058A (zh) 多媒体推广资源插入方法、设备以及计算机可读介质
CN104615432B (zh) 闪屏信息处理方法及客户端
CN112905928A (zh) 网页刷新方法、装置、电子设备及存储介质
CN109491803B (zh) 一种页面处理方法、装置以及相关设备
CN109683760B (zh) 最近内容的显示方法、装置、终端及存储介质
CN113312119A (zh) 信息同步方法及装置、计算机可读存储介质、电子设备
US20230297618A1 (en) Information display method and electronic apparatus
CN112135056A (zh) 拍摄方法、装置、电子设备以及存储介质
CN110493661A (zh) 一种视频文件的处理方法以及服务器
CN112689177B (zh) 一种实现快速交互的方法及显示设备
CN113657928A (zh) 广告展示方法、装置、存储介质以及终端设备
CN113312572A (zh) 一种资源处理方法、装置、存储介质及电子设备
CN112256381A (zh) 语言资源处理方法、装置、计算机设备和存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant