一种界面刷新方法、装置及可读存储介质与流程

文档序号:22626462发布日期:2020-10-23 19:34阅读:106来源:国知局
一种界面刷新方法、装置及可读存储介质与流程

本发明实施例涉及数据处理技术领域,具体涉及一种界面刷新方法、装置及可读存储介质。



背景技术:

根据网页或app(应用)提供的服务,网页或app的界面会提供多种与服务相关的数据,当这些数据的显示数据处于动态更新的状态,那么需要刷新界面,以便界面及时展示更新的显示数据。

然而,频繁的进行界面刷新,极可能增加界面的显示卡顿风险;因此如何改进界面刷新方式,以降低界面的显示卡顿风险,成为了本领域技术人员亟需解决的问题。



技术实现要素:

有鉴于此,本发明实施例提供一种界面刷新方法、装置及可读存储介质,以降低界面的显示卡顿风险。

为实现上述目的,本发明实施例提供如下技术方案:

一种界面刷新方法,包括:

获取数据更新通知,所述数据更新通知至少包括界面当前需刷新的目标数据;

根据所述目标数据携带的显示数据,更新目标控件节点对应的显示数据及与所述目标控件节点关联的目标原生控件对应的显示数据,所述目标控件节点为所述界面的控件节点树的控件节点中与所述目标数据存在对应关系的控件节点;

若所述目标原生控件检查其对应的显示数据与界面当前显示的目标数据的显示数据不同,所述目标原生控件根据其对应的显示数据刷新所述界面。

本发明实施例还提供一种界面刷新装置,包括:

更新通知获取控件,用于获取数据更新通知,所述数据更新通知至少包括界面当前需刷新的目标数据;

显示数据更新控件,用于根据所述目标数据携带的显示数据,更新目标控件节点对应的显示数据及与所述目标控件节点关联的目标原生控件对应的显示数据,所述目标控件节点为所述界面的控件节点树的控件节点中与所述目标数据存在对应关系的控件节点;

目标原生控件,用于若检查其对应的显示数据与界面当前显示的目标数据的显示数据不同,根据其对应的显示数据刷新所述界面。

本发明实施例还提供一种可读存储介质,所述可读存储介质存储有执行上述所述的界面刷新方法的程序。

本发明实施例提供的界面刷新方法可预先建立界面的控件节点树的控件节点与目标数据的对应关系;当与控件节点建立对应关系的任一目标数据发生更新时,本发明实施例可获取至少包括所述目标数据的数据更新通知,从而根据所述目标数据携带的显示数据,更新目标控件节点对应的显示数据及与所述目标控件节点关联的目标原生控件对应的显示数据,所述目标控件节点为所述界面的控件节点树的控件节点中与所述目标数据存在对应关系的控件节点;进而,目标原生控件若检查其对应的显示数据与界面当前显示的目标数据的显示数据不同时,则目标原生控件可根据其对应的显示数据刷新界面,实现界面刷新。可见,相比于整体刷新界面的方式,本发明实施例可仅针对更新的目标数据,实现界面的定点刷新,即定点刷新界面展示的所述目标数据的显示数据,从而降低了界面需要刷新的数据范围,减少了界面需要刷新的数据量,达到了降低界面的显示卡顿风险的效果。

附图说明

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

图1为界面刷新方式的示意图;

图2为实施本发明实施例提供的界面刷新方法的电子设备的硬件结构框图;

图3为本发明实施例提供的建立控件节点与目标数据的对应关系的方法流程图;

图4为本发明实施例提供的界面刷新方法的流程图;

图5为本发明实施例提供的界面刷新方法的示意图;

图6为本发明实施例提供的建立控件节点与目标数据的对应关系的另一方法流程图;

图7为本发明实施例提供的建立控件节点与目标数据的对应关系的再一方法流程图;

图8为本发明实施例提供的界面刷新方法的另一流程图;

图9为本发明实施例提供的界面刷新方法的再一流程图;

图10为本发明实施例提供的应用示例图;

图11为本发明实施例提供的界面刷新装置的框图;

图12为本发明实施例提供的界面刷新装置的另一框图;

图13为本发明实施例提供的界面刷新装置的再一框图。

具体实施方式

网页或app的界面可基于开发工具(如javascript)开发,开发工具层与开发界面使用的开发工具相应,开发工具层可基于在界面组织的数据,形成树形结构的对象树(如dom树),该对象树可以具有多个对象节点;开发工具层通过解析对象树的对象节点,可生成与对象树相应的控件节点树,控件节点树可以包括与对象节点对应的控件节点;通过将控件节点树的控件节点映射到原生(native)层的原生控件,可在原生层生成原生控件树,原生控件树可以包括与控件节点对应的原生控件;进而原生层可通过原生控件渲染界面,以实现显示界面;可以看出,控件节点树与原生控件树可以具有与对象树相同的树形结构。

刷新界面可以认为是刷新界面展示的显示数据,使得显示数据动态更新后,界面展示的显示数据为最新更新的;例如在导航引导场景下,界面可以为导航界面,导航界面可以组织多种导航引导数据,这些导航引导数据的导航引导显示数据会根据车辆位置动态更新,因此在导航引导显示数据更新时,需要刷新界面展示的导航引导显示数据,以便界面及时展示更新的导航引导显示数据。导航引导数据可以具有播报用数据和显示用数据,此处所指的导航引导显示数据可以是导航引导数据中的显示用数据。

示例的,一种界面刷新方式可如图1所示,在进行界面刷新时,可使用开发工具层侦听数据引擎的数据更新情况,当开发工具层侦听到数据引擎更新数据后,开发工具层可基于数据引擎更新的数据,在对象树中确定该更新的数据对应的对象节点,并以更新的数据的显示数据更新该对象节点的显示数据(如显示值),从而更新对象树;更新的对象树可触发控件节点树的整体更新,即整体更新控件节点树的控件节点对应的显示数据,进而,开发工具层可基于整体更新的控件节点树在原生层所映射的原生控件树,对界面进行整体刷新。

在一种示例中,网页或app的界面可基于javascript开发,示例的,开发工具层可以是js层(js为javascript的缩写),对象树可以是dom(documentobjectmodel,文档对象模型)树;组织界面(或文档)的对象可被组织在树形结构中,称为dom树,该dom树可在js层形成;表示该对象的标准模型可以是原生层映射的原生控件树,组织对象的dom树与原生控件树之间可通过js层的控件节点树关联,控件节点树可以是由js层解析dom树得到。

可以看出,上述界面刷新方式是在侦听到数据更新后更新对象树,以更新的对象树触发控件节点树的整体更新(如整体更新控件节点树中各控件节点对应的显示数据),进而以整体更新的控件节点树所映射的原生控件来整体刷新界面,这使得界面需要刷新的数据量较大,无疑增加了界面的显示卡顿风险。

基于此,本发明实施例提供一种改进的界面刷新方法、装置及可读存储介质,以降低界面的显示卡顿风险。下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

作为本发明实施例公开内容的一种可选实现,图2示出了实施本发明实施例提供的界面刷新方法的电子设备的一种可选硬件结构框图;该电子设备可以是终端设备;示例的,在导航引导场景下,该电子设备可以是置于车辆内部的车机设备,该电子设备可通过车身通信总线与车辆进行信息交互和控制,也可通过通信接口与网络进行信息交互;在另一种可选实现中,该电子设备也可以是放置在车辆上,但独立于车辆的终端设备,如智能手机、平板电脑等。

参照图2,该电子设备可以包括:处理器10,通信接口20,存储器30和通信总线40;

在本发明实施例中,处理器10,通信接口20和存储器30可通过通信总线40完成相互间的通信;显然,图2所示的处理器10,通信接口20和存储器30的通信连接示意仅是可选的一种方式;

可选的,通信接口20可以为通信模块的接口,如gsm(globalsystemformobilecommunication,全球移动通信系统)模块、lte(longtermevolution,长期演进)模块的接口等;电子设备可通过通信接口20与网络进行信息交互;

处理器10可能是cpu(centralprocessingunit,中央处理器),或者是asic(applicationspecificintegratedcircuit,特定集成电路),或者是被配置成实施本发明实施例的一个或多个集成电路;

存储器30可能包含高速ram存储器,也可能还包括非易失性存储器(non-volatilememory),例如至少一个磁盘存储器;在本发明实施例中,存储器30可以存储实现本发明实施例提供的界面刷新方法的程序,处理器10可调用存储器30所存储的该程序,实现本发明实施例提供的界面刷新方法;

可选的,上述所示仅是本发明实施例提供的电子设备的一种可选硬件结构;需要说明的是,电子设备还可包括对理解本发明实施例公开内容可能并不是必需的其他器件(未示出);鉴于这些其他器件对于理解本发明实施例公开内容可能并不是必需,本发明实施例对此不进行逐一介绍。

为在刷新界面时,降低界面的显示卡顿风险,本发明实施例提供一种改进的界面刷新方法。本发明实施例提供的界面刷新方法可预先建立控件节点树的控件节点与目标数据的对应关系,以订阅包括所述目标数据的数据更新通知,与控件节点建立对应关系的目标数据可以是界面中需要刷新的多种数据;当与控件节点建立对应关系的任一目标数据发生更新,本发明实施例可获取至少包括所述目标数据的数据更新通知,从而确定与所述目标数据存在对应关系的控件节点(称为目标控件节点),以所述目标数据携带的显示数据更新目标控件节点对应的显示数据和与目标控件节点关联的原生控件对应的显示数据,与目标控件节点关联的原生控件可称为目标原生控件;进而,目标原生控件可在检查其对应的显示数据与界面当前显示的目标数据的显示数据不同时,根据其对应的显示数据刷新界面,实现界面刷新。可见,相比于整体刷新界面的方式,本发明实施例可仅针对更新的目标数据,实现界面的定点刷新,即定点刷新界面展示的所述目标数据的显示数据,从而降低了界面需要刷新的数据范围,减少了界面需要刷新的数据量,达到了降低界面的显示卡顿风险的效果。

在实现本发明实施例提供的界面刷新方法前,本发明实施例需预先建立控件节点树的控件节点与目标数据的对应关系,以订阅包括所述目标数据的数据更新通知,与控件节点建立对应关系的目标数据可以是界面中需要刷新的多种数据;作为一种可选实现,本发明实施例可以在初始化界面之后,建立控件节点树的控件节点与目标数据的对应关系;当然,建立控件节点树的控件节点与目标数据的对应关系的执行顺序位于初始化界面之后,仅是一种可选实现;

可选的,图3示出了本发明实施例提供的建立控件节点树的控件节点与目标数据的对应关系的一种可选方法流程,参照图3,该方法流程可以包括:

步骤s100、初始化界面,以生成控件节点树及与所述控件节点树对应的原生控件树;所述控件节点树包括多个控件节点,所述原生控件树包括与所述控件节点对应的原生控件。

可选的,初始化界面的一种可选过程可以例如:根据界面组织的数据,生成对象树,所述对象树包括多个对象节点;解析所述对象树,生成与对象树相应的控件节点树,所述控件节点树可以包括对象节点相应的控件节点;映射控件节点树的控件节点对应的原生控件,生成原生控件树。

可选的,进一步,初始化界面可以认为是对界面进行初始化,渲染出初始的界面的过程,本发明实施例还可根据所述原生控件渲染初始的界面。可见,本发明实施例可在初始化显示界面时,生成包括控件节点的控件节点树及与所述控件节点一一对应的原生控件;即本发明实施例可在初始化显示界面时,生成界面的控件节点树与对应的原生控件树,控件节点树包括的控件节点与原生控件树包括的原生控件一一对应。

在一种示例中,对象树和控件节点树可在开发工具层实现,原生控件树可在原生层实现,原生层可根据原生控件渲染界面。

步骤s110、建立所述控件节点树的控件节点与目标数据的对应关系,以订阅包括所述目标数据的数据更新通知。

目标数据可以是界面需要刷新的多种目标数据,在一种可选实现中,本发明实施例可分析界面频繁刷新的目标数据,建立所述控件节点树的控件节点与界面频繁刷新的目标数据的对应关系;界面频繁刷新的目标数据可以通过一定的策略分析确定,例如,分析预定时间内,刷新次数达到预定次数的目标数据,又如,根据单位时间的刷新次数,对数据进行排序,选取排序处于设定名次的目标数据。

通过步骤s110可在控件节点树的控件节点绑定目标数据,并订阅包括目标数据的数据更新通知;从而,任一目标数据发生更新时,开发工具层可获取所述目标数据的数据更新通知,将所述数据更新通知推送给与所述目标数据存在对应关系的控件节点(称为目标控件节点),进而,根据所述目标数据携带的显示数据更新所述目标控件节点对应的显示数据及与所述目标控件节点关联的目标原生控件对应的显示数据;目标原生控件对应的显示数据更新后,目标原生控件可根据其对应的显示数据刷新界面,实现仅针对更新的目标数据,定点刷新界面,减少界面需要刷新的数据量。

可选的,可以理解的是,对象树是根据界面组织的数据生成的树形结构,且控件节点树的控件节点与对象树的对象节点具有对应关系,因此,本发明实施例可根据目标数据在对象树中对应的对象节点,及对象节点与控件节点的对应关系,确定目标数据在控件节点树中对应的控件节点,从而建立控件节点树的控件节点与目标数据的对应关系。

建立控件节点树的控件节点与目标数据的对应关系后,本发明实施例可在任一目标数据更新时,实现界面刷新,并降低界面的显示卡顿风险;作为一种可选实现,图4示出了本发明实施例提供的界面刷新方法的一种可选流程,参照图4,该流程可以包括:

步骤s200、获取数据更新通知,所述数据更新通知至少包括界面当前需刷新的目标数据。

目标数据携带的显示数据处于动态更新的状态,例如,数据引擎可不断的更新目标数据的显示数据;通过建立控件节点树的控件节点与目标数据的对应关系,以订阅包括所述目标数据的数据更新通知,可在目标数据发生更新(如目标数据携带的显示数据更新),界面当前需刷新所述目标数据时,获取至少包括所述目标数据的数据更新通知。

示例的,在导航引导场景下,所述界面可以为导航界面,目标数据可以为目标导航引导数据,目标导航引导数据可以是导航界面需刷新的多种导航引导数据,例如:剩余导航距离、剩余导航时间,导航路径中下一道路的名称,导航行驶距离,导航行驶时间等;

目标数据携带的显示数据可以是目标导航引导数据携带的导航引导显示数据,即所述显示数据可以是根据车辆位置动态更新的导航引导显示数据;当导航引导显示数据发生更新时,界面需要刷新相应的导航引导数据,以展示导航引导数据携带的导航引导显示数据;例如,数据引擎可根据车辆位置动态更新剩余导航距离的距离值,剩余导航时间的时间值,导航路径中下一道路的具体名称,导航行驶距离的距离值,导航行驶时间的时间值等;通过建立控件节点树的控件节点与目标导航引导数据的对应关系,以订阅目标导航引导数据的数据更新通知后,当数据引擎更新任一目标导航引导数据时(即目标导航引导数据携带的导航引导显示数据发生更新时),本发明实施例可获取至少包括所述目标导航引导的数据更新通知,所述数据更新通知包括的目标导航引导数据可以是导航界面当前需刷新的目标导航引导数据。

步骤s210、根据所述目标数据携带的显示数据,更新目标控件节点对应的显示数据及与所述目标控件节点关联的目标原生控件对应的显示数据,所述目标控件节点为所述界面的控件节点树的控件节点中与所述目标数据存在对应关系的控件节点。

获取数据更新通知后,本发明实施例可从建立的控件节点树的控件节点与目标数据的对应关系中,确定与所述数据更新通知包括的目标数据存在对应关系的目标控件节点,即目标控件节点为所述界面的控件节点树的控件节点中与所述数据更新通知包括的目标数据存在对应关系的控件节点;从而,本发明实施例可根据目标数据携带的显示数据,将所述目标控件节点的显示数据更新为所述目标数据携带的显示数据;若根据所述目标数据携带的显示数据,更新了目标控件节点的显示数据,则可将所述目标控件节点对应的目标原生控件的显示数据更新为所述目标数据携带的显示数据。

可选的,本发明实施例可根据目标控件节点更新的显示数据,更新与所述目标控件节点关联的目标原生控件对应的显示数据,实现将所述目标控件节点对应的目标原生控件的显示数据更新为所述目标数据携带的显示数据。目标原生控件可以认为是原生控件树中与目标控件节点存在对应关系的原生控件。

在一种示例中,在导航引导场景下,本发明实施例可建立控件节点树的控件节点与目标导航引导数据的对应关系,且一个控件节点对应一种类型的目标导航引导数据;从而,在任一目标导航引导数据发生更新时,本发明实施例可获取至少包括所述目标导航引导数据的数据更新通知,进而,从控件节点树的控件节点中,确定出目标导航引导数据对应的目标控件节点,根据目标导航引导数据携带的显示数据,更新目标控件节点对应的显示数据及与所述目标控件节点关联的目标原生控件对应的显示数据,使得目标控件节点对应的显示数据及目标原生控件对应的显示数据,与所述目标导航引导数据携带的显示数据相同;导航引导数据的显示数据可以是导航引导显示数据,导航引导显示数据可以是界面显示的完整导航引导语句,也可以是导航引导数据对应的导航引导值,例如剩余导航距离对应的距离值等。

可选的,本发明实施例通过将显示数据分别存储在控件节点对应的存储空间和原生控件对应的存储空间,可使得控件节点具有对应的显示数据,且与控件节点关联的原生控件具有对应的显示数据,从而在控件节点或原生控件的代码调整时,控件节点对应的显示数据和原生控件对应的显示数据能够互不影响,达到业务解耦的效果;即控件节点发生代码调整时,不会影响到原生控件对应的显示数据,原生控件发生代码调整时,不会影响控件节点对应的显示数据,从而达到良好的业务解耦效果。

步骤s220、目标原生控件检查其对应的显示数据与界面当前显示的目标数据的显示数据是否相同,若不同,所述目标原生控件根据其对应的显示数据刷新所述界面。

原生控件树包括与控件节点对应的原生控件,本发明实施例可在更新目标原生控件对应的显示数据后,由目标原生控件周期性检查其对应的显示数据与界面当前显示的目标数据的显示数据是否相同,从而在目标原生控件检查其对应的显示数据与界面当前显示的目标数据的显示数据不同时,目标原生控件可根据其对应的显示数据刷新所述界面。可见,本发明实施例可针对更新的目标数据,实现界面的定点刷新,即仅刷新界面中目标数据的显示数据,避免界面的整体刷新,降低界面需要刷新的数据范围,减少界面需要刷新的数据量,达到降低界面的显示卡顿风险的效果。

可选的,进一步,如果目标原生控件检查其对应的显示数据与界面当前显示的目标数据的显示数据相同,则停止界面刷新。

为便于说明,如图5所示,在初始化界面时,可根据界面组织的数据生成对象树,通过解析对象树可生成控件节点树,通过映射控件节点树可生成原生控件树;对象树可以包括多个对象节点,控件节点树可以包括与对象节点对应的控件节点,原生控件树可以包括与控件节点对应的原生控件;例如,图5中,对象节点1与控件节点1对应,控件节点1与原生控件1对应,对象节点2与控件节点2对应,控件节点2与原生控件2对应,以此类推;

区别于在数据发生更新时,更新对象树中的相应对象节点,再由更新的对象树触发整体更新控件节点树(如整体更新控件节点树的控件节点对应的显示数据),从而以控件节点树映射的原生控件树整体刷新界面的方式,本发明实施例可预先建立控件节点树的控件节点与界面需刷新的目标数据的对应关系,为便于说明,假设与控件节点建立对应关系的目标数据包括目标数据1,目标数据2和目标数据3,且目标数据1对应对象节点1,目标数据2对应对象节点2,目标数据3对应对象节点3,则如图5所示,本发明实施例可根据对象节点与控件节点的对应关系,建立控件节点1与目标数据1的对应关系,建立控件节点2与目标数据2的对应关系,建立控件节点3与目标数据3的对应关系;

在建立控件节点与目标数据的对应关系后,本发明实施例可实现订阅包括目标数据的数据更新通知,从而目标数据2发生更新后(即目标数据2携带的显示数据发生更新),本发明实施例可获取包括目标数据2的数据更新通知;进而,本发明实施例可确定目标数据2在控件节点树对应的控件节点2(此时,控件节点2可认为是目标控件节点的一种示例),根据目标数据2携带的显示数据更新控件节点2对应的显示数据,如使用目标数据2的数据内容更新控件节点2对应的显示值,使得控件节点2对应的显示值与目标数据2的显示数据相同;

控件节点2更新后,可根据控件节点2对应的显示数据,更新控件节点2对应的原生控件2的显示数据(如显示值),原生控件2对应的显示数据更新后,原生控件2可周期性检查其对应的显示数据与界面当前显示的目标数据2的显示数据是否相同,如果不同,则原生控件2可根据其对应的显示数据刷新界面中显示的目标数据2的显示数据,使得界面仅针对更新的目标数据2刷新显示数据,避免整体刷新界面的情况,减少界面需要刷新的数据量。

可见,本发明实施例可针对更新的目标数据,实现界面的定点刷新,即仅刷新界面中更新的目标数据的显示数据,避免界面的整体刷新,降低界面需要刷新的数据范围,减少界面需要刷新的数据量,达到降低界面的显示卡顿风险的效果。

作为一种可选实现,本发明实施例可通过建立控件节点的控件节点标识,与目标数据的数据标识的对应关系,实现建立控件节点树的控件节点与目标数据的对应关系。可选的,图6示出了本发明实施例提供的建立控件节点与目标数据的对应关系的另一种可选方法流程,参照图6,该方法流程可以包括:

步骤s300、初始化界面,以生成控件节点树及与所述控件节点树对应的原生控件树;所述控件节点树包括多个控件节点,所述原生控件树包括与所述控件节点对应的原生控件。

可选的,每一控件节点可以具有唯一的控件节点标识,以区分控件节点树中的不同控件节点。

在进一步的实现中,对象树的每一对象节点可以具有唯一的对象节点标识,原生控件树的每一原生控件可以具有唯一的原生控件标识,通过建立对象节点标识与控件节点标识的对应关系,可实现对象节点与控件节点的对应关系建立,通过建立控件节点标识与原生控件标识的对应关系,可实现控件节点与原生控件的对应关系建立。

步骤s310、建立控件节点的控件节点标识,与目标数据的数据标识的对应关系,以订阅包括所述目标数据的数据更新通知。

作为一种可选实现,界面需刷新的每一目标数据可具有唯一的数据标识,示例的,数据标识可以是数据id,字段名,数据类型等标识信息中的至少一种。

在目标数据发生更新时,目标数据的数据标识不变而显示数据发生更新;示例的,在导航引导场景下,导航界面需刷新的目标导航引导数据可以有多种,导航界面需刷新的目标导航引导数据例如剩余导航距离、剩余导航时间,导航路径中下一道路的名称,导航行驶距离,导航行驶时间等,每一类型的目标导航引导数据可以具有唯一的数据标识;在导航引导场景下,基于车辆位置的动态更新,剩余导航距离、剩余导航时间等不同类型的目标导航引导数据的数据标识不变而导航引导显示数据发生更新,例如,基于车辆位置的动态更新,剩余导航距离的数据标识不变,而剩余导航距离的具体距离值将随着车辆位置的更新而更新,当然,导航引导显示数据也可以是包括剩余导航距离的具体距离值的完整剩余导航距离引导语句。

可选的,本发明实施例可根据目标数据在对象树中对应的对象节点,及对象节点与控件节点的对应关系,确定目标数据在控件节点树中对应的控件节点,从而将目标数据的数据标识与对应的控件节点的控件节点标识进行绑定,实现建立控件节点树的控件节点标识与目标数据的数据标识的对应关系。

可选的,在建立控件节点树的控件节点与目标数据的对应关系的过程中,本发明实施例可根据目标数据的数据标识,或者目标数据的数据标识所对应的控件节点标识,订阅包括所述目标数据的数据更新通知,以便所述目标数据发生更新时,可获取包括所述目标数据的数据更新通知;示例的,可通过目标数据的数据标识,或者目标数据的数据标识所对应的控件节点标识,订阅目标数据的更新回调。

作为一种可选实现,本发明实施例可通过开发工具层实现建立控件节点与目标数据的对应关系,更进一步的,开发工具层可以包括开发工具逻辑层和开发工具引擎,如图7所示建立控件节点与数据的对应关系的再一可选方法流程,该流程可以包括:

步骤s400、开发工具逻辑层生成对象树。

可选的,开发工具逻辑层可根据在界面组织的数据,生成树形结构的对象树。对象树可以包括多个对象节点,每个对象节点可以具有唯一的对象节点标识,对象节点标识可以是对象节点id。

步骤s410、开发工具逻辑层通知开发工具引擎解析对象树。

开发工具逻辑层在生成对象树后,可通知开发工具引擎对对象树进行解析。

步骤s420、开发工具引擎解析所述对象树,生成控件节点树。

控件节点树可以包括多个控件节点,每个控件节点可以具有唯一的控件节点标识,控件节点标识可以是控件节点id;控件节点树的树形结构可与对象树相同,通过对对象树的每一个对象节点进行解析,可生成控件节点树。

步骤s430、开发工具引擎将控件节点树的控件节点映射到原生层的原生控件,生成原生控件树。

可选的,开发工具引擎在生成控件节点树后,可根据每一个控件节点,调用原生代码生成与每个控件节点对应的原生控件,形成原生控件树;原生控件树可以包括多个原生控件,控件节点树的控件节点可与原生控件树的原生控件一一对应,原生控件树的每一原生控件可以具有唯一的原生控件标识,原生控件标识可以是原生控件id。

在一种示例中,开发界面的开发工具可以是js,在基于js开发界面的情况下,开发工具逻辑层可以是js逻辑层,开发工具引擎可以是js引擎,对象树可以是dom(documentobjectmodel,文档对象模型)树。

步骤s440、开发工具逻辑层通过开发工具引擎,将控件节点的控件节点标识,与目标数据的数据标识进行绑定。

可选的,开发工具引擎可使用控件节点的控件节点标识绑定目标数据的数据标识,一个控件节点可绑定一种目标数据的数据标识,如一种目标数据的数据标识可与该目标数据对应的控件节点的控件节点标识进行绑定;数据标识可以是数据类型,数据id,数据的字段名等。

步骤s450、开发工具引擎订阅所述目标数据的数据更新通知。

可选的,开发工具引擎可使用目标数据的数据标识,或者目标数据的数据标识对应的控件节点标识,订阅目标数据的更新回调,从而在数据引擎更新目标数据时,开发工具引擎可回调目标数据的数据更新通知,获取到至少包括所述目标数据的数据更新通知。

可选的,通过步骤s440和步骤s450,本发明实施例可建立所述控件节点树的控件节点与目标数据的对应关系,以订阅包括所述目标数据的数据更新通知;当然,步骤s440和步骤s450仅是本发明实施例建立所述控件节点树的控件节点与目标数据的对应关系的一种可选方式,本发明实施例也可采用其他方式实现建立所述控件节点树的控件节点与目标数据的对应关系。

在建立控件节点与目标数据的对应关系后,作为本发明实施例公开内容的一种可选实现,图8示出了本发明实施例提供的界面刷新方法的另一种可选流程,参照图8,该流程可以包括:

步骤s500、获取数据更新通知,所述数据更新通知至少包括界面当前需刷新的目标数据。

可选的,目标数据可以携带目标数据的数据标识和显示数据。

步骤s510、根据控件节点标识与数据标识的对应关系,确定所述目标数据携带的数据标识对应的控件节点标识。

可选的,预先将控件节点的控件节点标识与目标数据的数据标识进行绑定后,本发明实施例可通过数组或列表等数据结构,记录控件节点标识与数据标识的对应关系;示例的,控件节点标识1可对应控件节点1,数据标识1可对应目标数据1,控件节点标识1与数据标识1可建立对应关系,控件节点标识2可对应控件节点2,数据标识2可对应目标数据2,控件节点标识2与数据标识2可建立对应关系,以此类推;假设目标数据2发生更新,则本发明实施例可获取目标数据2的数据更新通知,从而可根据控件节点标识与数据标识的对应关系,确定目标数据2的数据标识2对应的控件节点标识2。

步骤s520、确定所述控件节点标识在控件节点树中对应的目标控件节点。

在确定目标数据的数据标识对应的控件节点标识后,可在控件节点树中确定到所述控件节点标识对应的目标控件节点,实现确定目标数据对应的目标控件节点。

步骤s530、根据目标数据携带的显示数据更新目标控件节点对应的显示数据。

在确定目标控件节点后,本发明实施例可使用目标数据携带的显示数据,更新目标控件节点对应的显示数据,将所述目标控件节点的显示数据更新为所述目标数据携带的显示数据;

可选的,为减少不必要的刷新界面,本发明实施例可在确定目标控件节点后,判断目标数据携带的显示数据与目标控件节点当前对应的显示数据是否相同;若不同,则将所述目标控件节点对应的显示数据更新为所述目标数据携带的显示数据;若相同,则可取消更新目标控件节点对应的显示数据。

可选的,判断目标数据携带的显示数据与目标控件节点当前对应的显示数据是否相同的步骤也可以是可选的,即本发明实施例可在确定目标控件节点后,直接将所述目标控件节点对应的显示数据更新为所述目标数据携带的显示数据。

步骤s540、根据目标控件节点更新的显示数据,更新目标控件节点关联的目标原生控件对应的显示数据。

本发明实施例可从原生控件树中确定与目标控件节点存在对应关系的目标原生控件,从而在目标控件节点的显示数据更新后,本发明实施例可根据目标控件节点更新的显示数据,更新目标控件节点关联的目标原生控件对应的显示数据,实现将所述目标控件节点对应的目标原生控件的显示数据更新为所述目标数据携带的显示数据。

步骤s550、目标原生控件检查其对应的显示数据与界面当前显示的目标数据的显示数据不同,目标原生控件根据其对应的显示数据刷新所述界面。

可选的,目标原生控件可周期性检查其对应的显示数据与界面当前显示的目标数据的显示数据是否相同,如果不同,则目标原生控件可根据其对应的显示数据刷新所述界面,实现对界面显示的目标数据的显示数据进行更新,如果相同,则本发明实施例可停止界面刷新。本发明实施例可针对更新的目标数据定点刷新界面,减少界面刷新的数据量,使得界面的刷新更为快速和顺畅,减小界面的显示卡顿风险。

作为本发明实施例实现界面刷新的一种实现示例,图9示出了本发明实施例提供的界面刷新方法的再一种可选流程,参照图9,开发工具层可以包括开发工具逻辑层和开发工具引擎,例如,开发工具使用js,开发工具层可以是js层,相应的,开发工具逻辑层可以是js逻辑层,开发工具引擎可以是js引擎;如图9所示,该流程可以包括:

步骤s600、数据引擎更新目标数据,向js引擎传输数据更新通知;所述数据更新通知至少包括界面当前需刷新的目标数据。

数据引擎更新目标数据,目标数据携带的显示数据发生改变,js引擎可回调包括目标数据的数据更新通知,从而数据引擎可将数据更新通知传输给js引擎;数据更新通知中可至少包括所述目标数据;所述目标数据可以携带目标数据的数据标识和数据内容。

步骤s610、js引擎根据控件节点标识与数据标识的对应关系,确定所述目标数据携带的数据标识对应的控件节点标识。

步骤s620、js引擎根据所述控件节点标识,在控件节点树中确定对应的目标控件节点。

步骤s630、js引擎根据目标数据携带的显示数据,更新目标控件节点对应的显示数据。

可选的,可在判断目标控件节点当前对应的显示数据与目标数据携带的显示数据不同时,执行步骤s630。

步骤s640、js引擎根据更新的目标控件节点的显示数据,更新目标控件节点对应的目标原生控件的显示数据。

步骤s650、目标原生控件检查其对应的显示数据与界面当前显示的目标数据的显示数据不同,目标原生控件根据其对应的显示数据刷新所述界面。

需要说明的是,数据引擎、开发工具层和原生层可以认为是电子设备内的组件,数据引擎、开发工具层和原生层之间可通过进程间通信实现数据传输。

作为本发明实施例提供的界面刷新方法的一种可选应用示例,本发明实施例可在导航引导场景下,对导航界面显示的导航引导数据进行刷新,从而实现更新导航界面显示的导航引导显示数据;为便于说明,以导航界面刷新剩余导航距离为例,对本发明实施例提供的界面刷新方法的应用示例进行说明。剩余导航距离可以认为是一种类型的目标导航引导数据,当然,导航界面还可显示其他类型的目标导航引导数据,例如剩余导航时间,实际导航行驶时间等,为便于说明,本发明实施例仅以导航界面刷新剩余导航距离为例进行说明。

如图10所示,在导航引导场景下,导航界面可根据车辆位置动态刷新剩余导航距离的距离值,以实现刷新剩余导航距离;例如图10中,粗线可以表示导航路径,黑点表示车辆,当车辆位置由a位置更新为b位置时,剩余导航距离由500米更新为450米;当然,在车辆位置更新时,导航界面显示的其他导航引导数据也可能更新,此处不再进行示例,而导航界面显示的部分导航引导数据(例如起点位置,目的地位置等)可能维持不变,为减少导航界面需要刷新的数据量,本发明实施例可针对剩余导航距离等更新的目标导航引导数据,在导航界面实现定点刷新,而对于起点位置,目的地位置等可能维持不变的导航引导数据则可不必进行刷新,从而减少导航界面需要刷新的数据量;

本发明实施例可在导航界面初始化的过程中,根据导航界面组织的导航引导数据,生成dom树(对象树的一种可选形式),解析dom树生成控件节点树,映射控件节点树生成原生控件树;并且,建立控件节点树的控件节点与导航界面需刷新的目标导航引导数据的对应关系,以订阅包括目标导航引导数据的数据更新通知;如图10所示,剩余导航距离可在控件节点树中具有对应的控件节点;剩余导航距离的数据更新通知可被回调到js引擎等开发工具引擎;

当车辆位置由a位置更新为b位置时,剩余导航距离由500米更新为450米时,数据引擎更新剩余导航距离,并向js引擎传输包括剩余导航距离的数据更新通知;本发明实施例可确定剩余导航距离在控件节点树中对应的目标控件节点,从而以剩余导航距离携带的距离值更新目标控件节点对应的显示值,使得目标控件节点的显示值更新为450米;

进而,以更新显示值的目标控件节点,更新目标控件节点对应的目标原生控件对应的显示值,将目标原生控件对应的显示值更新为450米,当目标原生控件检查其对应的显示值(450米)与界面当前显示的剩余导航距离的显示数据(500米)不同,本发明实施例可根据目标原生控件对应的显示值刷新导航界面,使得导航界面显示的剩余导航距离的显示值更新为450米。

在导航引导场景下,本发明实施例可同理刷新导航界面显示的随车辆位置动态更新的其他导航引导显示数据,减少导航界面刷新的数据量,使得导航界面刷新更为快速和顺畅,减小了导航界面的显示卡顿风险。特别是在复杂布局的导航界面下,本发明实施例可大幅减少导航界面刷新的数据量,减小显示卡顿风险的效果更为明显。

上文描述了本发明实施例提供的多个实施例方案,各实施例方案介绍的各可选方式可在不冲突的情况下相互结合、交叉引用,从而延伸出多种可能的实施例方案,这些均可认为是本发明实施例披露、公开的实施例方案。

下面对本发明实施例提供的界面刷新装置进行介绍,下文描述的界面刷新装置可以认为是为实现本发明实施例提供的界面刷新方法,所需设置的程序控件。下文描述的界面刷新装置的内容,可与上文描述的界面刷新方法的内容相互对应参照。

图11为本发明实施例提供的界面刷新装置的一种可选框图,参照图11,该界面刷新装置可以包括:

更新通知获取控件100,用于获取数据更新通知,所述数据更新通知至少包括界面当前需刷新的目标数据;

显示数据更新控件200,用于根据所述目标数据携带的显示数据,更新目标控件节点对应的显示数据及与所述目标控件节点关联的目标原生控件对应的显示数据,所述目标控件节点为所述界面的控件节点树的控件节点中与所述目标数据存在对应关系的控件节点;

目标原生控件300,用于若检查其对应的显示数据与界面当前显示的目标数据的显示数据不同,根据其对应的显示数据刷新所述界面。

可选的,图12示出了本发明实施例提供的界面刷新装置的另一框图,结合图11和图12所示,该界面刷新装置还可以包括:

关系建立控件400,用于建立所述控件节点树的控件节点与目标数据的对应关系,以订阅包括所述目标数据的数据更新通知;

目标控件节点确定控件500,用于在更新通知获取控件100获取数据更新通知之后,从所述控件节点与目标数据的对应关系中,确定所述目标数据对应的控件节点为目标控件节点。

可选的,关系建立控件400,用于建立所述控件节点树的控件节点与目标数据的对应关系,可以具体包括:

建立控件节点的控件节点标识与目标数据的数据标识的对应关系。

可选的,目标控件节点确定控件500,用于从所述控件节点与目标数据的对应关系中,确定所述目标数据对应的控件节点为目标控件节点,可以具体包括:

根据控件节点标识与数据标识的对应关系,确定所述目标数据进一步携带的数据标识对应的控件节点标识;

确定所述控件节点标识在控件节点树中对应的控件节点为目标控件节点。

可选的,显示数据更新控件200,用于根据所述目标数据携带的显示数据,更新目标控件节点对应的显示数据,可以具体包括:

判断所述目标数据携带的显示数据与所述目标控件节点当前对应的显示数据是否相同;

若不同,将所述目标控件节点对应的显示数据更新为所述目标数据携带的显示数据。

可选的,显示数据更新控件200,用于根据所述目标数据携带的显示数据,更新与所述目标控件节点关联的目标原生控件对应的显示数据,可以具体包括:

若根据所述目标数据携带的显示数据,更新了目标控件节点对应的显示数据,则将所述目标控件节点对应的目标原生控件的显示数据更新为所述目标数据携带的显示数据。

可选的,目标原生控件300还可用于,周期性检查其对应的显示数据与界面当前显示的目标数据的显示数据是否相同。

可选的,图13示出了本发明实施例提供的界面刷新装置的再一框图,结合图12和图13所示,该界面刷新装置还可以包括:

生成控件600,用于在显示界面时,生成包括所述界面的控件节点的控件节点树及与所述控件节点一一对应的原生控件。

在一种示例中,本发明实施例提供的界面刷新装置可用于刷新导航界面,相应的,所述界面可以为导航界面,所述显示数据可以为根据车辆位置动态更新的导航引导显示数据。

本发明实施例提供的界面刷新装置可通过程序控件形式,装载于电子设备。本发明实施例提供的电子设备的硬件结构可如图2所示,包括至少一个存储器和至少一个处理器;其中,存储器存储有程序,处理器调用所述程序,以执行本发明实施例提供的界面刷新方法。

本发明实施例还提供一种存储介质,该存储介质可以存储执行本发明实施例提供的界面刷新方法的程序。

可选的,所述程序可用于:

获取数据更新通知,所述数据更新通知至少包括界面当前需刷新的目标数据;根据所述目标数据携带的显示数据,更新目标控件节点对应的显示数据及与所述目标控件节点关联的目标原生控件对应的显示数据,所述目标控件节点为所述界面的控件节点树的控件节点中与所述目标数据存在对应关系的控件节点;若所述目标原生控件检查其对应的显示数据与界面当前显示的目标数据的显示数据不同,根据所述目标原生控件对应的显示数据刷新所述界面。

虽然本发明实施例披露如上,但本发明并非限定于此。任何本领域技术人员,在不脱离本发明的精神和范围内,均可作各种更动与修改,因此本发明的保护范围应当以权利要求所限定的范围为准。

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