CN113051015A - 页面渲染方法、装置、电子设备及存储介质 - Google Patents

页面渲染方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN113051015A
CN113051015A CN202110341193.7A CN202110341193A CN113051015A CN 113051015 A CN113051015 A CN 113051015A CN 202110341193 A CN202110341193 A CN 202110341193A CN 113051015 A CN113051015 A CN 113051015A
Authority
CN
China
Prior art keywords
page
attribute information
class
rendering
data
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.)
Granted
Application number
CN202110341193.7A
Other languages
English (en)
Other versions
CN113051015B (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.)
Beijing Dajia Internet Information Technology Co Ltd
Original Assignee
Beijing Dajia Internet Information Technology 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 Beijing Dajia Internet Information Technology Co Ltd filed Critical Beijing Dajia Internet Information Technology Co Ltd
Priority to CN202110341193.7A priority Critical patent/CN113051015B/zh
Publication of CN113051015A publication Critical patent/CN113051015A/zh
Application granted granted Critical
Publication of CN113051015B publication Critical patent/CN113051015B/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/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本公开是关于一种页面渲染方法、装置、电子设备及存储介质,属于计算机技术领域。方法包括:响应于对目标页面的展示指令,基于目标页面的页面数据,在原生环境中创建第一对象,在数据加载环境中,创建第二对象,通过第二对象,向第一对象发送控件属性信息,通过第一对象,接收控件属性信息,基于控件属性信息进行渲染。本公开实施例提供的页面渲染方法,基于页面的页面数据,分别在原生环境及数据加载环境中创建具有关联关系的第一对象和第二对象,通过第一对象与第二对象之间的交互,实现了对页面的渲染,并且,在渲染页面的过程中,无需对页面数据进行类型转换,从而提高了页面效率。

Description

页面渲染方法、装置、电子设备及存储介质
技术领域
本公开涉及计算机技术领域,尤其涉及一种页面渲染方法、装置、电子设备及存储介质。
背景技术
随着计算机技术的发展,目前提出了基于框架开发应用的方式,例如基于flutter框架、react native框架等多种框架均可开发应用。
对于这种基于框架开发的应用来说,在展示该应用中的任一页面时,需要通过该框架将该页面对应的页面数据转换成当前操作系统所支持的数据类型,才能根据转换后的页面数据渲染该页面,实现页面的展示。
但是,上述过程中需要对页面数据的类型进行转换,此过程所需花费的时间较长,导致页面渲染效率较低。
发明内容
本公开提供了一种页面渲染方法、装置、电子设备及存储介质,提高了页面渲染效率。
根据本公开实施例的一方面,提供一种页面渲染方法,所述页面渲染方法包括:
响应于对目标页面的展示指令,基于所述目标页面的页面数据,在原生环境中创建第一对象,所述页面数据包括控件属性信息,所述控件属性信息用于表示所述目标页面中的控件;
在数据加载环境中,创建第二对象,所述第二对象与所述第一对象关联且所述第二对象与所述控件属性信息关联,所述数据加载环境用于加载页面的页面数据;
通过所述第二对象,向所述第一对象发送所述控件属性信息;
通过所述第一对象,接收所述控件属性信息,基于所述控件属性信息进行渲染。
本公开实施例提供的页面渲染方法,在渲染页面时,基于页面的页面数据,分别在原生环境及数据加载环境中创建具有关联关系的第一对象和第二对象,通过第一对象与第二对象之间的交互,实现了对页面的渲染,并且,在渲染页面的过程中,无需对页面数据进行类型转换,从而提高了页面效率。
在一些实施例中,所述响应于对目标页面的展示指令,基于所述目标页面的页面数据,在原生环境中创建第一对象之前,所述页面渲染方法还包括:
在应用启动时,运行应用框架;
通过所述应用框架创建所述数据加载环境;
通过所述应用框架,将所述应用框架中的类信息注入所述数据加载环境中,所述类信息包括渲染接口标识与属性标识之间的对应关系,所述渲染接口标识用于指示所述原生环境中的类包含的渲染接口,所述属性标识用于指示所述类包含的控件属性信息。
在本公开实施例提供了一种应用框架,在应用框架运行时,创建数据加载环境,并将应用框架的类信息注入数据加载环境中,后续数据加载环境能够基于该类信息调用原生环境中的接口,从而实现数据加载环境与原生环境之间的交互,避免了后续在渲染页面过程中无法找到对应的类信息而出现异常的情况,以保证后续页面的正常渲染。
在一些实施例中,所述响应于对目标页面的展示指令,基于所述目标页面的页面数据,在原生环境中创建第一对象,包括:
响应于所述展示指令,通过所述数据加载环境对所述页面数据进行解析,得到所述控件属性信息及对应的类标识,所述类标识用于指示所述控件的类;
通过所述数据加载环境,向所述原生环境发送所述类标识;
通过所述原生环境,创建所述类标识对应的所述第一对象。
在本公开实施例提供的页面渲染方法,通过数据加载环境与原生环境之间的交互,在原生环境中创建控件对应的第一对象,以便后续能够通过第一对象渲染控件,从而实现页面的渲染。
在一些实施例中,所述通过所述数据加载环境,向所述原生环境发送所述类标识,包括:
通过所述数据加载环境,调用所述原生环境提供的类标识传输接口,向所述原生环境发送所述类标识。
在本公开实施例提供的页面渲染方法,通过原生环境提供的类标识传输接口,能够将页面数据中的类标识发送至原生环境,实现了数据加载环境与原生环境的交互。
在一些实施例中,所述在数据加载环境中,创建第二对象,包括:
通过所述数据加载环境,创建与所述第一对象关联的第二对象;
建立所述第二对象与所述第一对象对应的控件属性信息之间的关联关系。
在本公开实施例提供的页面渲染方法,通过在数据加载环境中创建与第一对象关联的第二对象,并建立第二对象与对应的控件属性信息之间的关联关系,使得具有关联关系的第一对象及第二对象之间能够进行交互,后续通过第二对象与关联的第一对象之间进行交互来实现页面的渲染。
在一些实施例中,所述通过所述数据加载环境,创建与所述第一对象关联的第二对象之后,所述页面渲染方法还包括:
确定所述第一对象对应的类标识匹配的类信息;
建立所述第二对象与所述类信息之间的关联关系。
在本公开实施例提供的页面渲染方法,通过建立第二对象与匹配的类信息之间的关联关系,以使后续第二对象能够通过该类信息来获取所支持的接口等,避免在方法调用时无法获取到所支持的接口而出现异常的情况,保证了页面渲染的正常运行。
在一些实施例中,所述通过所述第二对象,向所述第一对象发送所述控件属性信息,包括:
通过所述第二对象,从所述第二对象关联的类信息中,查询所述第二对象关联的控件属性信息对应的渲染接口标识,所述类信息包括渲染接口标识与属性标识之间的对应关系;
向所述第一对象发送所述控件属性信息和所述渲染接口标识。
在本公开实施例提供的页面渲染方法,在第二对象与第一对象交互过程中,通过第二对象将查询到的控件属性信息和渲染标识向第二对象发送,以便后续第二对象能够基于接收到的控件属性信息及渲染接口标识来渲染对应的控件,从而保证了渲染控件的准确性。
在一些实施例中,所述通过所述第一对象,接收所述控件属性信息,基于所述控件属性信息进行渲染,包括:
通过所述第一对象,接收所述控件属性信息和所述渲染接口标识;
调用所述渲染接口标识对应的渲染接口,对所述控件属性信息进行渲染。
在本公开实施例提供的页面渲染方法,第一对象通过控件属性信息对应的渲染接口标识所对应的渲染接口,来对控件属性信息进行渲染,保证了渲染出的控件的准确性,从而保证了渲染出的页面的准确性。并且,将渲染接口标识作为接口指针,以指针的形式来实现接口的调用,保证了接口调用的准确性。
在一些实施例中,所述响应于对目标页面的展示指令,基于所述目标页面的页面数据,在原生环境中创建第一对象,包括:
响应于对所述目标页面的展示指令,向服务器发送文件获取请求;
接收所述服务器响应于所述文件获取请求返回的所述页面数据;
基于所述页面数据,在所述原生环境中创建所述第一对象。
在本公开实施例提供的页面渲染方法,通过与服务器进行交互,来获取页面的页面数据,保证了获取到的页面数据的准确性,后续基于获取到的页面数据进行渲染,实现了一种页面的动态化渲染的效果。
在一些实施例中,所述通过所述第一对象,接收所述控件属性信息,基于所述控件属性信息进行渲染之后,所述页面渲染方法还包括:
响应于所述第二对象关联的控件属性信息发生更新,通过所述第二对象,向所述第一对象发送更新后的控件属性信息及属性更新接口标识;
通过所述第一对象调用所述属性更新接口标识对应的属性更新接口,基于所述更新后的控件属性信息进行渲染。
在本公开实施例提供的页面渲染方法,在第二对象关联的控件属性信息发生更新的情况下,通过该属性更新接口,基于更新后的控件属性信息来更新页面中的控件,从而使得页面进行更新,更新后的页面中的控件按照更新后的控件属性信息来进行显示,此过程实现了页面的动态化更新。
在一些实施例中,所述响应于所述第二对象关联的控件属性信息发生更新,通过所述第二对象,向所述第一对象发送更新后的控件属性信息及属性更新接口标识之前,所述页面渲染方法还包括:
响应于接收到服务器发送的所述目标页面更新后的页面数据,通过所述数据加载环境,根据所述更新后的页面数据,更新所述第二对象关联的控件属性信息。
在本公开实施例提供的页面渲染方法,在页面展示过程中,通过服务器实时下发的更新后的页面数据,来更新第二对象关联的控件属性信息,以便后续基于更新的控件属性信息来更新页面,从而实现了页面动态化更新的效果。
在一些实施例中,所述控件属性信息中还包括操作类型与接口标识的对应关系;所述通过所述第一对象,接收所述控件属性信息,基于所述控件属性信息进行渲染之后,所述页面渲染方法还包括:
响应于对所述渲染出的所述控件的触发操作,向所述控件对应的所述第二对象发送所述操作所属的操作类型;
通过所述第二对象,从所述控件属性信息中查询所述操作类型对应的接口标识,向所述第一对象发送所述接口标识;
通过所述第一对象,运行所述接口标识指示的接口。
在本公开实施例提供的页面渲染方法,在控件属性信息中配置了操作类型与接口标识的对应关系,基于该控件属性信息,能够确定对控件的触发操作所属的操作类型对应的接口标识,通过第一对象与第二对象之间的交互,能够使第一对象运行接口标识对应的接口,从而实现了页面针对该触发操作来进行响应的过程。
在一些实施例中,所述通过所述第一对象,接收所述控件属性信息,基于所述控件属性信息进行渲染之后,所述页面渲染方法还包括:
响应于对所述目标页面的关闭指令,通过所述第二对象调用所述第二对象对应的销毁接口,销毁所述第二对象,并向所述第一对象发送销毁消息;
通过所述第一对象接收所述销毁消息,调用所述第一对象对应的销毁接口,销毁所述第一对象。
在本公开实施例提供的页面渲染方法,在关闭目标页面时,通过销毁接口来销毁数据加载环境中的第二对象及原生环境中的第一对象,即销毁了该目标页面中控件所对应的对象,节省了内存空间。
根据本公开实施例的再一方面,提供一种页面渲染装置,所述装置包括:
创建单元,被配置为执行响应于对目标页面的展示指令,基于所述目标页面的页面数据,在原生环境中创建第一对象,所述页面数据包括控件属性信息,所述控件属性信息用于表示所述目标页面中的控件;
所述创建单元,还被配置为执行在数据加载环境中,创建第二对象,所述第二对象与所述第一对象关联且所述第二对象与所述控件属性信息关联,所述数据加载环境用于加载页面的页面数据;
发送单元,被配置为执行通过所述第二对象,向所述第一对象发送所述控件属性信息;
渲染单元,被配置为执行通过所述第一对象,接收所述控件属性信息,基于所述控件属性信息进行渲染。
在一些实施例中,所述页面渲染装置还包括:
运行单元,被配置为执行在应用启动时,运行应用框架;
所述创建单元,还被配置为执行通过所述应用框架创建所述数据加载环境;
注入单元,被配置为执行通过所述应用框架,将所述应用框架中的类信息注入所述数据加载环境中,所述类信息包括渲染接口标识与属性标识之间的对应关系,所述渲染接口标识用于指示所述原生环境中的类包含的渲染接口,所述属性标识用于指示所述类包含的控件属性信息。
在一些实施例中,所述创建单元,包括:
解析子单元,被配置为执行响应于所述展示指令,通过所述数据加载环境对所述页面数据进行解析,得到所述控件属性信息及对应的类标识,所述类标识用于指示所述控件的类;
第一发送子单元,被配置为执行通过所述数据加载环境,向所述原生环境发送所述类标识;
创建子单元,被配置为执行通过所述原生环境,创建所述类标识对应的所述第一对象。
在一些实施例中,所述第一发送子单元,被配置为执行通过所述数据加载环境,调用所述原生环境提供的类标识传输接口,向所述原生环境发送所述类标识。
在一些实施例中,所述创建单元,包括:
所述创建子单元,被配置为执行通过所述数据加载环境,创建与所述第一对象关联的第二对象;
建立子单元,被配置为执行建立所述第二对象与所述第一对象对应的控件属性信息之间的关联关系。
在一些实施例中,所述页面渲染装置还包括:
确定单元,被配置为执行确定所述第一对象对应的类标识匹配的类信息;
建立单元,被配置为执行建立所述第二对象与所述类信息之间的关联关系。
在一些实施例中,所述发送单元,包括:
查询子单元,被配置为执行通过所述第二对象,从所述第二对象关联的类信息中,查询所述第二对象关联的控件属性信息对应的渲染接口标识,所述类信息包括渲染接口标识与属性标识之间的对应关系;
第二发送子单元,被配置为执行向所述第一对象发送所述控件属性信息和所述渲染接口标识。
在一些实施例中,所述渲染单元,包括:
第一接收子单元,被配置为执行通过所述第一对象,接收所述控件属性信息和所述渲染接口标识;
渲染子单元,被配置为执行调用所述渲染接口标识对应的渲染接口,对所述控件属性信息进行渲染。
在一些实施例中,所述创建单元,包括:
第一发送子单元,被配置为执行响应于对所述目标页面的展示指令,向服务器发送文件获取请求;
第二接收子单元,被配置为执行接收所述服务器响应于所述文件获取请求返回的所述页面数据;
创建子单元,被配置为执行基于所述页面数据,在所述原生环境中创建所述第一对象。
在一些实施例中,所述发送单元,被配置为执行响应于所述第二对象关联的控件属性信息发生更新,通过所述第二对象,向所述第一对象发送更新后的控件属性信息及属性更新接口标识;
所述渲染单元,被配置为执行通过所述第一对象调用所述属性更新接口标识对应的属性更新接口,基于所述更新后的控件属性信息进行渲染。
在一些实施例中,所述装置还包括:
更新单元,被配置为执行响应于接收到服务器发送的所述目标页面更新后的页面数据,通过所述数据加载环境,根据所述更新后的页面数据,更新所述第二对象关联的控件属性信息。
在一些实施例中,所述控件属性信息中还包括操作类型与接口标识的对应关系;所述页面渲染装置还包括:
所述发送单元,还被配置为执行响应于对所述渲染出的所述控件的触发操作,向所述控件对应的所述第二对象发送所述操作所属的操作类型;
所述发送单元,还被配置为执行通过所述第二对象,从所述控件属性信息中查询所述操作类型对应的接口标识,向所述第一对象发送所述接口标识;
运行单元,被配置为执行通过所述第一对象,运行所述接口标识指示的接口。
在一些实施例中,所述页面渲染装置还包括:
销毁单元,被配置为执行响应于对所述目标页面的关闭指令,通过所述第二对象调用所述第二对象对应的销毁接口,销毁所述第二对象,并向所述第一对象发送销毁消息;
所述销毁单元,还被配置为执行通过所述第一对象接收所述销毁消息,调用所述第一对象对应的销毁接口,销毁所述第一对象。
根据本公开实施例的再一方面,提供了一种电子设备,所述电子设备包括:
一个或多个处理器;
用于存储所述一个或多个处理器可执行指令的易失性或非易失性存储器;
其中,所述一个或多个处理器被配置为执行第一方面所述的页面渲染方法。
根据本公开实施例的再一方面,提供一种非临时性计算机可读存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行上述方面所述的页面渲染方法。
根据本公开实施例的再一方面,提供一种计算机程序产品,当所述计算机程序产品中的指令由电子设备的处理器执行时,使得电子设备能够执行上述方面所述的页面渲染方法。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
图1是根据一示例性实施例示出的一种实施环境的示意图。
图2是根据一示例性实施例示出的一种页面渲染方法的流程图。
图3是根据一示例性实施例示出的一种页面渲染方法的流程图。
图4是根据一示例性实施例示出的一种页面渲染方法的流程图。
图5是根据一示例性实施例示出的一种页面渲染装置的框图。
图6是根据一示例性实施例示出的一种页面渲染装置的框图。
图7是根据一示例性实施例示出的一种终端的框图。
图8是根据一示例性实施例示出的一种服务器的框图。
具体实施方式
为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。
需要说明的是,本公开的说明书和权利要求书及上述附图说明中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
本公开所使用的术语“至少一个”、“多个”、“每个”、“任一”,至少一个包括一个、两个或两个以上,多个包括两个或两个以上,而每个是指对应的多个中的每一个,任一是指多个中的任意一个。举例来说,多个第一对象包括3个第一对象,而每个是指这3个第一对象中的每一个第一对象,任一是指这3个第一对象中的任意一个,能够是第一个,或者是第二个,或者是第三个。
需要说明的是,本公开所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等),均为经用户授权或者经过各方充分授权的信息。
图1是根据一示例性实施例提供的一种实施环境的示意图,该实施环境包括:终端101和服务器102,终端101能够通过与服务器102之间的网络连接进行交互。
其中,该终端101为手机、平板电脑、计算机等多种类型的终端,该服务器102为一台服务器,或者由若干服务器组成的服务器集群,或者是一个云计算服务中心。
终端101上安装由服务器102提供服务的应用,终端101能够通过该应用实现例如数据传输、消息交互等功能。例如,该应用为内容分享应用,该内容分享应用具有内容分享的功能,当然,该内容分享应用还能够具有其他功能,例如,点评功能、购物功能、导航功能、游戏功能等。在一些实施例中,应用为终端101操作系统中的应用,或者为第三方提供的应用。在一些实施例中,服务器102为该应用的后台服务器或者为提供云计算以及云存储等服务的云服务器。
在一些实施例中,终端101基于账号登录应用,通过应用与服务器102进行交互,来获取服务器102下发的该应用中页面的页面数据,之后由终端101基于获取到的页面数据渲染出页面,并展示渲染出的页面。
在一些实施例中,终端101基于账号登录应用,通过应用与服务器102进行交互,终端101向服务器102发送对页面的展示指令,服务器102接收该展示指令,基于该页面对应的页面数据,渲染出该页面,向终端101发送渲染出的页面,由该终端101显示渲染出的页面。
本公开实施例提供的方法能够应用于多种场景下。
例如,购物应用场景下。
终端安装有购物应用,在购物应用启动后,响应于对任一购物页面的展示指令,采用本公开实施例提供的页面渲染方法,渲染出该购物页面,并展示该购物页面,以便用户后续查看该购物页面,在此过程中,无需对页面的页面数据的类型进行转换,从而提升了页面的转换效率,使得用户能够及时查看到购物页面,无需用户等待。
图2是根据一示例性实施例示出的一种页面渲染方法的流程图,参见图2,该方法应用于电子设备中,包括以下步骤:
201、电子设备响应于对目标页面的展示指令,基于目标页面的页面数据,在原生环境中创建第一对象。
其中,页面数据包括控件属性信息,控件属性信息用于表示目标页面中的控件。该第一对象与目标页面中的控件对应,用于执行原生环境中的接口。
202、电子设备在数据加载环境中,创建第二对象。
其中,数据加载环境用于加载应用中页面的页面数据,第二对象与第一对象关联且第二对象与控件属性信息关联。
203、电子设备通过第二对象,向第一对象发送控件属性信息。
204、电子设备通过第一对象,接收控件属性信息,基于控件属性信息进行渲染。
通过数据加载环境中的第二对象,与在原生环境中关联的第一对象之间进行交互,将控件的控件属性信息发送至第一对象,由第一对象基于该控件属性信息进行渲染,使得第一对象渲染出该控件属性信息所对应的控件。通常页面包括多个控件,通过渲染出页面中包含的控件,从而实现了页面的渲染。
本公开实施例提供的页面渲染方法,在渲染页面时,基于页面的页面数据,分别在原生环境及数据加载环境中创建具有关联关系的第一对象和第二对象,通过第一对象与第二对象之间的交互,实现了对页面的渲染,并且,在渲染页面的过程中,无需对页面数据进行类型转换,从而提高了页面效率。
在一些实施例中,响应于对目标页面的展示指令,基于目标页面的页面数据,在原生环境中创建第一对象之前,页面渲染方法还包括:
在应用启动时,运行应用框架;
通过应用框架创建数据加载环境;
通过应用框架,将应用框架中的类信息注入数据加载环境中,类信息包括渲染接口标识与属性标识之间的对应关系,渲染接口标识用于指示原生环境中的类包含的渲染接口,属性标识用于指示类包含的控件属性信息。
在一些实施例中,所响应于对目标页面的展示指令,基于目标页面的页面数据,在原生环境中创建第一对象,包括:
响应于展示指令,通过数据加载环境对页面数据进行解析,得到控件属性信息及对应的类标识,类标识用于指示控件的类;
通过数据加载环境,向原生环境发送类标识;
通过原生环境,创建类标识对应的第一对象。
在一些实施例中,所通过数据加载环境,向原生环境发送类标识,包括:
通过数据加载环境,调用原生环境提供的类标识传输接口,向原生环境发送类标识。
在一些实施例中,所在数据加载环境中,创建第二对象,包括:
通过数据加载环境,创建与第一对象关联的第二对象;
建立第二对象与第一对象对应的控件属性信息之间的关联关系。
在一些实施例中,所通过数据加载环境,创建与第一对象关联的第二对象之后,页面渲染方法还包括:
确定第一对象对应的类标识匹配的类信息;
建立第二对象与类信息之间的关联关系。
在一些实施例中,所通过第二对象,向第一对象发送控件属性信息,包括:
通过第二对象,从第二对象关联的类信息中,查询第二对象关联的控件属性信息对应的渲染接口标识,类信息包括渲染接口标识与属性标识之间的对应关系;
向第一对象发送控件属性信息和渲染接口标识。
在一些实施例中,所通过第一对象,接收控件属性信息,基于控件属性信息进行渲染,包括:
通过第一对象,接收控件属性信息和渲染接口标识;
调用渲染接口标识对应的渲染接口,对控件属性信息进行渲染。
在一些实施例中,所响应于对目标页面的展示指令,基于目标页面的页面数据,在原生环境中创建第一对象,包括:
响应于对目标页面的展示指令,向服务器发送文件获取请求;
接收服务器响应于文件获取请求返回的页面数据;
基于页面数据,在原生环境中创建第一对象。
在一些实施例中,所通过第一对象,接收控件属性信息,基于控件属性信息进行渲染之后,页面渲染方法还包括:
响应于第二对象关联的控件属性信息发生更新,通过第二对象,向第一对象发送更新后的控件属性信息及属性更新接口标识;
通过第一对象调用属性更新接口标识对应的属性更新接口,基于更新后的控件属性信息进行渲染。
在一些实施例中,所响应于第二对象关联的控件属性信息发生更新,通过第二对象,向第一对象发送更新后的控件属性信息及属性更新接口标识之前,方法还包括:
响应于接收到服务器发送的目标页面更新后的页面数据,通过数据加载环境,根据更新后的页面数据,更新第二对象关联的控件属性信息。
在一些实施例中,所控件属性信息中还包括操作类型与接口标识的对应关系;通过第一对象,接收控件属性信息,基于控件属性信息进行渲染之后,页面渲染方法还包括:
响应于对渲染出的控件的触发操作,向控件对应的第二对象发送操作所属的操作类型;
通过第二对象,从控件属性信息中查询操作类型对应的接口标识,向第一对象发送接口标识;
通过第一对象,运行接口标识指示的接口。
在一些实施例中,所通过第一对象,接收控件属性信息,基于控件属性信息进行渲染之后,页面渲染方法还包括:
响应于对目标页面的关闭指令,通过第二对象调用第二对象对应的销毁接口,销毁第二对象,并向第一对象发送销毁消息;
通过第一对象接收销毁消息,调用第一对象对应的销毁接口,销毁第一对象。
图3是根据一示例性实施例示出的一种页面渲染方法的流程图,参见图3,该方法应用于电子设备中,包括以下步骤:
301、电子设备在应用启动时,运行应用框架。
在本公开实施例中,应用是任意的应用,如即时通讯应用、购物应用等,该应用中包括至少一个页面。该应用框架是一种支持应用运行的框架,基于该应用框架,能够保证应用启动后的逻辑实现及页面展示等功能。例如,该应用框架为NativeDynamic(一种页面布局框架)。在应用启动时,运行该应用框架,以使后续能够基于该应用框架来实现应用的页面展示。
302、电子设备通过应用框架创建数据加载环境。
其中,该数据加载环境为虚拟内存中的环境,是在应用启动后,通过运行的应用框架创建的,该数据加载环境用于加载应用中页面的页面数据。例如,数据加载环境为脚本执行环境,该脚本执行环境为Context(代码执行上下文环境)。通过应用框架创建的数据加载环境,后续能够将页面的页面数据加载在该数据加载环境,基于该数据加载环境中的页面数据能够渲染出页面。
在一些实施例中,该302包括:通过该应用框架,在内存中创建数据加载环境。通过在内存中创建数据加载环境,即将内存作为数据加载环境的载体,后续能够基于该数据加载环境来渲染页面。
303、电子设备通过应用框架,将应用框架中的类信息注入数据加载环境中。
其中,类信息包括渲染接口标识与属性标识之间的对应关系,渲染接口标识用于指示原生环境中的类包含的渲染接口,例如,该渲染接口为渲染函数,属性标识用于指示原生环境中的类包含的控件属性信息。
该原生环境是指该应用框架中的本地环境,例如,该原生环境为Native(原生环境),在一些实施例中,该原生环境提供多种接口及多种属性信息。在一些实施例中,类信息还包括其他接口标识与其他属性标识之间的对象关系,该其他接口标识用于指示原生环境中的类包含的其他接口,其他属性标识用于指示原生环境中的类包含的其他属性信息。通过将应用框架中的类信息注入该数据加载环境中,后续数据加载环境能够基于该类信息调用原生环境中的接口,从而实现数据加载环境与原生环境之间的交互,避免了后续在渲染页面过程中无法找到对应的类信息而出现异常的情况,以保证页面的正常渲染。
在一些实施例中,电子设备包括原生环境开发工具,该303包括:通过该原生环境开发工具,将应用框架中的类信息注入数据加载环境中。
其中,原生环境开发工具可以为Native SDK(Native Software DevelopmentKit,原生环境开发工具)。该原生环境开发工具用于在原生环境中收集需要注入数据加载环境的类信息,在收集完需要导出的类信息后,通过JSContext(一种信息注入方法),将类信息直接注入到数据加载环境中。
304、电子设备响应于展示指令,通过数据加载环境对页面数据进行解析,得到控件属性信息及对应的类标识。
其中,类标识用于指示控件的类,不同的控件的类可以相同,也可以不同。例如,对于任两个控件,该两个控件均为按钮,该两个控件的类相同;或者,在该两个控件中,一个控件为按钮,一个控件为输入框,该两个控件的类不同。在本公开实施例中,每个页面对应有一个页面数据,该页面数据中包括了用于展示对应的页面所需的数据。页面数据包括至少一个控件属性信息及每个控件属性信息对应的类标识,控件属性信息用于指示目标页面中的控件的属性,每个控件属性信息对应的类标识用于指示对应的控件的类。例如,该页面数据为脚本文件,如JS(Java Script,脚本)文件,该JS文件中包括了页面中包含的控件对应的控件属性信息及包含的控件的类对应的类标识。通过采用文件解析的方法,将页面数据加载至数据加载环境中,获取到页面数据所包含的信息,如控件属性信息及对应的类标识,以便后续能够基于获取到的信息来创建用于渲染页面的对象。
在一些实施例中,该304包括:响应于展示指令,通过脚本引擎,在该数据加载环境中对页面数据进行解析,得到控件属性信息及对应的类标识。
其中,脚本引擎用于执行页面数据,在不同的操作系统中,脚本引擎可能不同。由于操作系统中已经配置了脚本引擎,则本公开实施例提供的应用框架中无需再引入其他的脚本引擎,即可在展示页面时,通过脚本引擎,将页面的页面数据加载至数据加载环境中,获取到页面数据中包含的信息。
在一些实施例中,获取页面数据的过程包括:响应于对目标页面的展示指令,向服务器发送文件获取请求,接收服务器响应于文件获取请求返回的页面数据。
其中,该服务器是用于为该应用提供服务的服务器,服务器中存储有应用中包括的页面的页面数据,在服务器获取到任一电子设备发送的文件获取请求后,能够基于该文件获取请求查询到对应的页面数据,并将查询到的页面数据返回,使得电子设备获取到请求展示的页面的页面数据。
在上述实施例的一种可能实现方式中,该服务器中存储有应用中的页面的页面数据与页面标识的对应关系。则服务器获取目标页面的页面数据的过程包括:在服务器获取到任一电子设备的文件获取请求后,查询页面数据与页面标识的对应关系,确定该文件获取请求携带的页面标识对应的页面数据,向该电子设备发送查询到的页面数据。
在一些实施例中,获取页面数据的过程包括:响应于对目标页面的展示指令,查询文件数据库中目标页面标识对应的页面数据。
其中,文件数据库包括页面的页面标识与页面数据的对应关系。在本公开实施例中,文件数据库为本端数据库,该文件数据库中存储有页面对应的页面数据。在电子设备对任一页面展示时,能够从该文件数据库中查询到对应的页面数据,并将查询到的页面数据进行加载,以便后续对页面进行渲染。
在上述实施例的一种可能实现方式中,在任一页面的页面数据更新时,服务器向电子设备发送更新后的页面数据,电子设备接收更新后的页面数据,将该更新后的页面数据与页面标识对应存储于该文件数据库中。通过电子设备与服务器之间的交互,能够及时更新文件数据库中存储的页面数据,以保证文件数据库中的页面数据的准确性。
305、电子设备通过数据加载环境,向原生环境发送类标识。
在电子设备通过数据加载环境获取到页面数据中包含的类标识后,向原生环境发送该类标识,以使后续通过原生环境创建类标识对应的第一对象。
在一些实施例中,该305包括:通过数据加载环境,调用原生环境提供的类标识传输接口,向原生环境发送类标识。
其中,该类标识传输接口为该原生环境提供的接口,该类标识传输接口用于向原生环境传输类标识。通过数据加载环境调用该类标识传输接口,以实现数据加载环境与原生环境的交互,将页面数据中的类标识发送至原生环境。
306、电子设备通过原生环境,创建类标识对应的第一对象。
在原生环境获取到数据加载环境发送的类标识后,在原生环境中创建类标识对应的第一对象,以便后续基于第一对象与数据加载环境进行交互。
在一些实施例中,该306包括:通过原生环境,调用原生环境中的类定义接口,创建类标识对应的第一对象。其中,类定义接口用于定义类对应的对象,例如,该类定义接口为JSClassDefinition(Java Script ClassDefinition,脚本类定义函数)。
需要说明的是,本公开实施例是先通过数据加载环境对页面数据进行解析,得到页面数据中的控件属性信息及对应的类标识,之后,通过原生环境创建数据加载环境发送的类标识对应的第一对象,而在另一实施例中,无需执行步骤304-306,能够采取其他方式,响应于对目标页面的展示指令,基于目标页面的页面数据,在原生环境中创建第一对象。
在一些实施例中,响应于对目标页面的展示指令,向服务器发送文件获取请求,接收服务器响应于文件获取请求返回的页面数据,基于页面数据,在原生环境中创建第一对象。其中,基于页面数据在原生环境中创建第一对象的过程,与上述步骤304-306同理,在此不再赘述。
307、电子设备通过数据加载环境,创建与第一对象关联的第二对象。
在原生环境中创建第一对象后,通过数据加载环境,在数据加载环境中创建与第一对象关联的第二对象,也即是在数据加载环境中创建与第一对象绑定的第二对象,创建的第一对象与该第二对象之间具有绑定关系。在本公开实施例中,具有关联关系的第一对象及第二对象之间能够进行交互,以便后续能够基于控件属性信息来对页面进行渲染。
在一些实施例中,该307包括:通过原生环境向发数据加载环境发送第一对象标识,通过该数据加载环境接收该第一对象标识,调用该数据加载环境中的类定义接口,基于该第一对象标识创建第二对象。其中,第一对象标识用于指示原生环境中创建的第一对象,该第一对象标识为任意的字符串。该数据加载环境中的类定义接口用于定义类的对象。通过在数据加载环境中的类定义接口,将创建的第二对象与第一对象标识关联,从而实现第二对象与该第一对象之间的关联,以便后续基于第二对象与第一对象之间的关联关系,实现第二对象与第一对象之间的交互。
308、电子设备建立第二对象与第一对象对应的控件属性信息之间的关联关系。
在本公开实施例中,从数据加载环境中获取到的控件属性信息及对应的类标识,在原生环境中创建的第一对象与该类标识对应,即该第一对象与该类标识对应的控件属性信息对应。并且,在数据加载环境中创建的第二对象与该第一对象之间具有关联关系,则该第二对象与该第一对象对应的控件属性之间也具有关联关系,因此,创建该第二对象与该控件属性信息之间的关联关系。
另外,本公开实施例仅是以页面数据中包含一个类标识及该类标识对应的控件属性信息为例进行说明的,而当页面数据中包含多个类标识及每个类标识对应的控件属性信息时,在原生环境中创建每个类标识对应的第一对象,在数据加载环境中创建与每个第一对象关联的第二对象,并将每个第二对象与对应的第一对象所对应的控件属性信息关联,即得到多个对象组合,每个对象组合包括具有关联关系的第一对象和第二对象,每个对象组合与一个控件属性信息对应,即每个对象组合与一个控件对应。
需要说明的是,本公开实施例是先在数据加载环境中创建与第一对象关联的第二对象,再将第二对象与第一对象对应的控件属性信息关联,而在另一实施例中,无需执行步骤307-308,能够采取其他方式,在数据加载环境中,创建第二对象。
309、电子设备确定第一对象对应的类标识匹配的类信息,建立第二对象与类信息之间的关联关系。
在本公开实施例中,在数据加载环境中注入了至少一个类信息,不同的类信息所对应的类不同,每个类具有一个类标识,不同的类的类标识不同。电子设备在创建第二对象后,确定该第二对象关联的第一对象所对应的类标识,确定该数据加载环境中与该类标识匹配的类信息,将第二对象与该类信息之间建立关联关系,以使后续第二对象能够通过该类信息来获取所支持的接口等,避免在方法调用时无法获取到所支持的接口而出现异常的情况,保证了页面渲染的正常运行。
在一些实施例中,该309包括:确定第一对象对应的类标识匹配的类信息,将该类信息确定为该第二对象的静态接口属性。其中,静态接口属性为Static Functions(静态函数)属性,将确定的类信息作为该第二对象的静态接口属性,使得该第二对象与该类信息之间建立关联关系。
例如,调用数据加载环境中的类定义函数,基于第一对象标识,初始化第二对象,创建该第二对象的销毁函数,确定该第二对象对应的第一对象所对应的控件属性信息,建立该第二对象与该控件属性信息之间的关联关系,为该第二对象生成静态函数属性,确定该第二对象对应的类信息,将该类信息赋值给该第二对象对应的静态函数属性。
310、电子设备通过第二对象,从第二对象关联的类信息中,查询第二对象关联的控件属性信息对应的渲染接口标识,向第一对象发送控件属性信息和渲染接口标识。
由于类信息中包括渲染接口标识与属性标识之间的对应关系,通过查询该类信息,能够确定第二对象关联的控件属性信息对应的渲染接口标识,并将查询到的控件属性信息和渲染标识向第二对象发送,以便后续第二对象能够基于接收到的控件属性信息及渲染接口标识来渲染对应的控件。
需要说明的是,本公开实施例是以通过第二对象向第一对象发送控件属性信息和渲染接口标识来进行说明的,而在另一实施例中,无需执行步骤310,通过第二对象,仅向第一对象发送控件属性信息。
311、电子设备通过第一对象,接收控件属性信息和渲染接口标识,调用渲染接口标识对应的渲染接口,对控件属性信息进行渲染。
在第一对象接收到第二对象发送的控件属性信息和渲染接口标识后,调用原生环境中渲染接口对应的渲染接口,通过该渲染接口对该控件属性信息进行渲染,从而在页面中渲染得到第二对象所对应的控件,以完成对页面的渲染,以便后续能够展示渲染出的页面。在第一对象调用渲染接口时,将渲染接口标识作为接口指针,以指针的形式来实现接口的调用,保证了调用接口的准确性。
需要说明的是,本公开实施例是第一对象标识调用渲染接口标识对应的渲染接口,对控件属性信息进行渲染的,而在另一实施例中,无需执行步骤311,能够采取其他方式,通过第一对象,接收控件属性信息,基于控件属性信息进行渲染。
在一些实施例中,在311之后,该方法还包括:
312、响应于第二对象关联的控件属性信息发生更新,通过第二对象,向第一对象发送更新后的控件属性信息及属性更新接口标识。
在本公开实施例中,不同的控件属性信息对应有不同的属性更新接口标识,即不同的更新接口能够更新控件不同的控件属性信息。在第二对象关联的控件属性信息发生更新后,第二对象将该更新后的控件属性信息及对应的属性更新接口标识发送至第一对象,以便后续第一对象基于该更新后的控件属性信息及对应的属性更新接口标识来更新控件。
在一些实施例中,该312包括:响应于第二对象关联的控件属性信息发生更新,从第二对象关联的类信息中,查询该控件属性信息对应的属性更新接口标识,通过第二对象,向第一对象发送更新后的控件属性信息及属性更新接口标识。
由于类信息中包括接口标识与属性标识之间的对应关系,在第二对象关联的控件属性信息发送更新时,查询该对应关系,能够确定该控件属性信息对应的属性更新接口标识。
在一些实施例中,在312之前,该方法还包括:响应于接收到服务器发送的目标页面更新后的页面数据,通过数据加载环境,根据更新后的页面数据,更新第二对象关联的控件属性信息。
在上述实施例的一种可能实现方式中,更新第二对象关联的控件属性信息的过程包括:通过数据加载环境,对该更新后的页面数据进行解析,得到更新后的控件属性信息及对应的类标识,确定该类标识对应的第一对象,将该第一对象关联的控件属性信息更新为该更新后的控件属性信息。
313、通过第一对象调用属性更新接口标识对应的属性更新接口,基于更新后的控件属性信息进行渲染。
在第一对象接收到第二对象发送的更新后的控件属性信息,调用该属性更新接口标识对应的属性更新接口,通过该属性更新接口,基于更新后的控件属性信息来更新页面中的控件,从而使得页面进行更新,更新后的页面中的控件按照更新后的控件属性信息来进行显示,此过程实现了页面的动态化更新。
在一些实施例中,在311之后,该方法还包括:响应于对渲染出的控件的触发操作,向控件对应的第二对象发送操作所属的操作类型,通过第二对象,从控件属性信息中查询操作类型对应的接口标识,向第一对象发送接口标识,通过第一对象,运行接口标识指示的接口。
其中,控件属性信息中还包括操作类型与接口标识的对应关系。在一些实施例中,该控件属性信息中包括多种操作类型,每种操作类型对应一种接口标识,不同的操作类型对应的接口标识可能不同,以表示对控件的多种触发操作所实现的功能不同。例如,该控件为按钮,单次点击该按钮、双击该按钮、长按该按钮所实现的功能不同。
基于该页面检测到对渲染出的控件的触发操作,向该控件对应的第二对象发送操作所属的操作类型,则该第二对象接收到操作类型后,从控件属性信息中查询操作类型对应的接口标识,以表示在对页面中该控件执行操作后,需要调用该接口标识对应的接口,之后由该第一对象运行该接口标识指示的接口,从而实现了页面针对该触发操作来进行响应的过程。
在一些实施例中,在311之后,该方法还包括:响应于对目标页面的关闭指令,通过第二对象调用第二对象对应的销毁接口,销毁第二对象,并向第一对象发送销毁消息,通过第一对象接收销毁消息,调用第一对象对应的销毁接口,销毁第一对象。
在本公开实施例中,每个第一对象和每个第二对象均具有对应的销毁接口,以便于在页面关闭时,能够销毁对象,从而节省出所占的内存空间。在关闭目标页面时,目标页面中的控件对应的第二对象能够接收到该关闭指令,第二对象能够调用对应的销毁接口进行销毁,并且通过该销毁接口,向对应的第一对象发送销毁消息,以使第一对象根据该销毁消息调用对应的销毁接口来销毁第一对象,从而销毁该目标页面所对应的对象,节省了内存空间。
在上述实施例的一种可能实现方式中,在原生环境中创建第一对象时,生成该第一对象对应的销毁接口,在数据加载环境中创建第二对象时,生成该第二对象对应的销毁接口。
本公开实施例提供的应用框架能够运行在不同的操作系统中,在不同的操作系统中,通过该应用框架来进行页面渲染,无需应用经历发版流程,能够实现页面的动态化更新,提高了页面的更新迭代速度。
本公开实施例提供的页面渲染方法,在渲染页面时,基于页面的页面数据,分别在原生环境及数据加载环境中创建具有关联关系的第一对象和第二对象,通过第一对象与第二对象之间的交互,实现了对页面的渲染,并且,在渲染页面的过程中,无需对页面数据进行类型转换,从而提高了页面效率。
并且,本公开实施例提供的应用框架在启动时,仅会初始化部分类信息,之后,在应用框架运行过程中,根据需要来加载所需执行的类信息,这种按需注入的方式,大大减少了应用框架所需初始化的信息,从而降低了运行的应用框架所占的内存空间。并且,由于该应用框架启动时所需初始化的类信息少,提高了该应用框架的初始化速度,提高了应用框架的性能。并且,基于本公开提供的应用框架开发的应用,在运行过程中,占用内存的空间少,降低了操作系统强制关闭应用的概率,从而提升了系统的稳定性。
并且,本公开实施例提供的页面渲染方法,基于页面的页面数据来渲染页面的过程均在主线程中实现,无需在页面渲染过程中进行线程切换,减少了线程的切换的性能损耗,提高了该应用框架的性能。
并且,基于本公开实施例提供的应用框架,仅需页面的页面数据即可实现页面的渲染,即在页面开发过程中,仅需开发页面的页面数据即可,无需再开发其他页面渲染的逻辑代码,从而提高了开发效率,节省了开发成本。
图4是根据一示例性实施例示出的一种页面渲染方法的流程图,该流程包括:
1、基于业务层获取到对目标页面的展示指令,获取该目标页面的脚本文件,通过脚本引擎,将该脚本文件注入到脚本执行环境中,在该脚本执行环境中对脚本文件进行解析,得到控件属性信息及对应的类标识,通过该脚本执行环境,向原生环境发送类标识。
2、通过原生环境中的类定义函数,在该原生环境中创建与该类标识对应的第一对象,通过该原生环境,向脚本执行环境发送第一对象标识。
3、通过脚本执行环境中的类定义函数,基于第一对象标识,在该脚本执行环境中创建与该第一对象关联的第二对象,并将该第二对象与该第一对象对应的类标识匹配的类信息、及该类标识对应的控件属性信息关联。
4、通过第二对象,从第二对象关联的类信息中,查询第二对象关联的控件属性信息对应的渲染函数标识,向第一对象发送控件属性信息和渲染函数标识,通过第一对象,接收控件属性信息和渲染函数标识,确定在原生环境中该渲染函数标识对应的渲染函数,调用该渲染函数,对控件属性信息进行渲染,得到渲染出的控件,从而得到渲染出的目标页面。
5、基于该业务层,展示渲染出的目标页面。
图5是根据一示例性实施例示出的一种页面渲染装置的框图。参见图5,该装置包括:
创建单元501,被配置为执行响应于对目标页面的展示指令,基于目标页面的页面数据,在原生环境中创建第一对象,页面数据包括控件属性信息,控件属性信息用于表示目标页面中的控件;
创建单元501,还被配置为执行在数据加载环境中,创建第二对象,第二对象与第一对象关联且第二对象与控件属性信息关联,数据加载环境用于加载页面的页面数据;
发送单元502,被配置为执行通过第二对象,向第一对象发送控件属性信息;
渲染单元503,被配置为执行通过第一对象,接收控件属性信息,基于控件属性信息进行渲染。
在一些实施例中,如图6所示,页面渲染装置还包括:
运行单元504,被配置为执行在应用启动时,运行应用框架;
创建单元501,还被配置为执行通过应用框架创建数据加载环境;
注入单元505,被配置为执行通过应用框架,将应用框架中的类信息注入数据加载环境中,类信息包括渲染接口标识与属性标识之间的对应关系,渲染接口标识用于指示原生环境中的类包含的渲染接口,属性标识用于指示类包含的控件属性信息。
在一些实施例中,如图6所示,创建单元501,包括:
解析子单元5011,被配置为执行响应于展示指令,通过数据加载环境对页面数据进行解析,得到控件属性信息及对应的类标识,类标识用于指示控件的类;
第一发送子单元5012,被配置为执行通过数据加载环境,向原生环境发送类标识;
创建子单元5013,被配置为执行通过原生环境,创建类标识对应的第一对象。
在一些实施例中,第一发送子单元5012,被配置为执行通过数据加载环境,调用原生环境提供的类标识传输接口,向原生环境发送类标识。
在一些实施例中,如图6所示,创建单元501,包括:
创建子单元5013,被配置为执行通过数据加载环境,创建与第一对象关联的第二对象;
建立子单元5014,被配置为执行建立第二对象与第一对象对应的控件属性信息之间的关联关系。
在一些实施例中,如图6所示页面渲染装置还包括:
确定单元506,被配置为执行确定第一对象对应的类标识匹配的类信息;
建立单元507,被配置为执行建立第二对象与类信息之间的关联关系。
在一些实施例中,如图6所示,发送单元502,包括:
查询子单元5021,被配置为执行通过第二对象,从第二对象关联的类信息中,查询第二对象关联的控件属性信息对应的渲染接口标识,类信息包括渲染接口标识与属性标识之间的对应关系;
第二发送子单元5022,被配置为执行向第一对象发送控件属性信息和渲染接口标识。
在一些实施例中,如图6所示,渲染单元503,包括:
第一接收子单元5031,被配置为执行通过第一对象,接收控件属性信息和渲染接口标识;
渲染子单元5032,被配置为执行调用渲染接口标识对应的渲染接口,对控件属性信息进行渲染。
在一些实施例中,如图6所示,创建单元501,包括:
第一发送子单元5012,被配置为执行响应于对目标页面的展示指令,向服务器发送文件获取请求;
第二接收子单元5015,被配置为执行接收服务器响应于文件获取请求返回的页面数据;
创建子单元5013,被配置为执行基于页面数据,在原生环境中创建第一对象。
在一些实施例中,发送单元502,被配置为执行响应于第二对象关联的控件属性信息发生更新,通过第二对象,向第一对象发送更新后的控件属性信息及属性更新接口标识;
渲染单元503,被配置为执行通过第一对象调用属性更新接口标识对应的属性更新接口,基于更新后的控件属性信息进行渲染。
在一些实施例中,如图6所示,装置还包括:
更新单元508,被配置为执行响应于接收到服务器发送的目标页面更新后的页面数据,通过数据加载环境,根据更新后的页面数据,更新第二对象关联的控件属性信息。
在一些实施例中,控件属性信息中还包括操作类型与接口标识的对应关系;如图6所示,页面渲染装置还包括:
发送单元502,还被配置为执行响应于对渲染出的控件的触发操作,向控件对应的第二对象发送操作所属的操作类型;
发送单元502,还被配置为执行通过第二对象,从控件属性信息中查询操作类型对应的接口标识,向第一对象发送接口标识;
运行单元504,被配置为执行通过第一对象,运行接口标识指示的接口。
在一些实施例中,如图6所示,页面渲染装置还包括:
销毁单元509,被配置为执行响应于对目标页面的关闭指令,通过第二对象调用第二对象对应的销毁接口,销毁第二对象,并向第一对象发送销毁消息;
销毁单元509,还被配置为执行通过第一对象接收销毁消息,调用第一对象对应的销毁接口,销毁第一对象。
关于上述实施例中的装置,其中各个单元执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
在示例性实施例中,还提供了一种电子设备,电子设备包括:
一个或多个处理器;
用于存储一个或多个处理器可执行指令的易失性或非易失性存储器;
其中,一个或多个处理器被配置为执行上述页面渲染方法中终端或服务器所执行的步骤。
在一些实施例中,电子设备提供为终端。图7是根据一示例性实施例示出的一种终端700的结构框图。该终端700可以是便携式移动终端,比如:智能手机、平板电脑、MP3播放器(Moving Picture Experts Group Audio Layer III,动态影像专家压缩标准音频层面3)、MP4(Moving Picture Experts Group Audio Layer IV,动态影像专家压缩标准音频层面4)播放器、笔记本电脑或台式电脑。终端700还可能被称为用户设备、便携式终端、膝上型终端、台式终端等其他名称。
终端700包括有:处理器701和存储器702。
处理器701可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器701可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器701也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central ProcessingUnit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器701可以集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器701还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器702可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器702还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器702中的非暂态的计算机可读存储介质用于存储至少一条程序代码,该至少一条程序代码用于被处理器701所执行以实现本公开中方法实施例提供的页面渲染方法。
在一些实施例中,终端700还可选包括有:外围设备接口703和至少一个外围设备。处理器701、存储器702和外围设备接口703之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与外围设备接口703相连。具体地,外围设备包括:射频电路704、显示屏705、摄像头组件706、音频电路707、定位组件708和电源709中的至少一种。
外围设备接口703可被用于将I/O(Input/Output,输入/输出)相关的至少一个外围设备连接到处理器701和存储器702。在一些实施例中,处理器701、存储器702和外围设备接口703被集成在同一芯片或电路板上;在一些其他实施例中,处理器701、存储器702和外围设备接口703中的任意一个或两个可以在单独的芯片或电路板上实现,本实施例对此不加以限定。
射频电路704用于接收和发射RF(Radio Frequency,射频)信号,也称电磁信号。射频电路704通过电磁信号与通信网络以及其他通信设备进行通信。射频电路704将电信号转换为电磁信号进行发送,或者,将接收到的电磁信号转换为电信号。可选地,射频电路704包括:天线系统、RF收发器、一个或多个放大器、调谐器、振荡器、数字信号处理器、编解码芯片组、用户身份模块卡等等。射频电路704可以通过至少一种无线通信协议来与其它终端进行通信。该无线通信协议包括但不限于:万维网、城域网、内联网、各代移动通信网络(2G、3G、4G及5G)、无线局域网和/或WiFi(Wireless Fidelity,无线保真)网络。在一些实施例中,射频电路704还可以包括NFC(Near Field Communication,近距离无线通信)有关的电路,本公开对此不加以限定。
显示屏705用于显示UI(User Interface,用户界面)。该UI可以包括图形、文本、图标、视频及其它们的任意组合。当显示屏705是触摸显示屏时,显示屏705还具有采集在显示屏705的表面或表面上方的触摸信号的能力。该触摸信号可以作为控制信号输入至处理器701进行处理。此时,显示屏705还可以用于提供虚拟按钮和/或虚拟键盘,也称软按钮和/或软键盘。在一些实施例中,显示屏705可以为一个,设置在终端700的前面板;在另一些实施例中,显示屏705可以为至少两个,分别设置在终端700的不同表面或呈折叠设计;在另一些实施例中,显示屏705可以是柔性显示屏,设置在终端700的弯曲表面上或折叠面上。甚至,显示屏705还可以设置成非矩形的不规则图形,也即异形屏。显示屏705可以采用LCD(Liquid Crystal Display,液晶显示屏)、OLED(Organic Light-Emitting Diode,有机发光二极管)等材质制备。
摄像头组件706用于采集图像或视频。可选地,摄像头组件706包括前置摄像头和后置摄像头。前置摄像头设置在终端的前面板,后置摄像头设置在终端的背面。在一些实施例中,后置摄像头为至少两个,分别为主摄像头、景深摄像头、广角摄像头、长焦摄像头中的任意一种,以实现主摄像头和景深摄像头融合实现背景虚化功能、主摄像头和广角摄像头融合实现全景拍摄以及VR(Virtual Reality,虚拟现实)拍摄功能或者其它融合拍摄功能。在一些实施例中,摄像头组件706还可以包括闪光灯。闪光灯可以是单色温闪光灯,也可以是双色温闪光灯。双色温闪光灯是指暖光闪光灯和冷光闪光灯的组合,可以用于不同色温下的光线补偿。
音频电路707可以包括麦克风和扬声器。麦克风用于采集用户及环境的声波,并将声波转换为电信号输入至处理器701进行处理,或者输入至射频电路704以实现语音通信。出于立体声采集或降噪的目的,麦克风可以为多个,分别设置在终端700的不同部位。麦克风还可以是阵列麦克风或全向采集型麦克风。扬声器则用于将来自处理器701或射频电路704的电信号转换为声波。扬声器可以是传统的薄膜扬声器,也可以是压电陶瓷扬声器。当扬声器是压电陶瓷扬声器时,不仅可以将电信号转换为人类可听见的声波,也可以将电信号转换为人类听不见的声波以进行测距等用途。在一些实施例中,音频电路707还可以包括耳机插孔。
定位组件708用于定位终端700的当前地理位置,以实现导航或LBS(LocationBased Service,基于位置的服务)。定位组件708可以是基于美国的GPS(GlobalPositioning System,全球定位系统)、中国的北斗系统或俄罗斯的伽利略系统的定位组件。
电源709用于为终端700中的各个组件进行供电。电源709可以是交流电、直流电、一次性电池或可充电电池。当电源709包括可充电电池时,该可充电电池可以是有线充电电池或无线充电电池。有线充电电池是通过有线线路充电的电池,无线充电电池是通过无线线圈充电的电池。该可充电电池还可以用于支持快充技术。
在一些实施例中,终端700还包括有一个或多个传感器710。该一个或多个传感器710包括但不限于:加速度传感器711、陀螺仪传感器712、压力传感器713、指纹传感器714、光学传感器715以及接近传感器716。
加速度传感器711可以检测以终端700建立的坐标系的三个坐标轴上的加速度大小。比如,加速度传感器711可以用于检测重力加速度在三个坐标轴上的分量。处理器701可以根据加速度传感器711采集的重力加速度信号,控制显示屏705以横向视图或纵向视图进行用户界面的显示。加速度传感器711还可以用于游戏或者用户的运动数据的采集。
陀螺仪传感器712可以检测终端700的机体方向及转动角度,陀螺仪传感器712可以与加速度传感器711协同采集用户对终端700的3D动作。处理器701根据陀螺仪传感器712采集的数据,可以实现如下功能:动作感应(比如根据用户的倾斜操作来改变UI)、拍摄时的图像稳定、游戏控制以及惯性导航。
压力传感器713可以设置在终端700的侧边框和/或显示屏705的下层。当压力传感器713设置在终端700的侧边框时,可以检测用户对终端700的握持信号,由处理器701根据压力传感器713采集的握持信号进行左右手识别或快捷操作。当压力传感器713设置在显示屏705的下层时,由处理器701根据用户对显示屏705的压力操作,实现对UI界面上的可操作性控件进行控制。可操作性控件包括按钮控件、滚动条控件、图标控件、菜单控件中的至少一种。
指纹传感器714用于采集用户的指纹,由处理器701根据指纹传感器714采集到的指纹识别用户的身份,或者,由指纹传感器714根据采集到的指纹识别用户的身份。在识别出用户的身份为可信身份时,由处理器701授权该用户执行相关的敏感操作,该敏感操作包括解锁屏幕、查看加密信息、下载软件、支付及更改设置等。指纹传感器714可以被设置在终端700的正面、背面或侧面。当终端700上设置有物理按键或厂商Logo时,指纹传感器714可以与物理按键或厂商Logo集成在一起。
光学传感器715用于采集环境光强度。在一个实施例中,处理器701可以根据光学传感器715采集的环境光强度,控制显示屏705的显示亮度。具体地,当环境光强度较高时,调高显示屏705的显示亮度;当环境光强度较低时,调低显示屏705的显示亮度。在另一个实施例中,处理器701还可以根据光学传感器715采集的环境光强度,动态调整摄像头组件706的拍摄参数。
接近传感器716,也称距离传感器,设置在终端700的前面板。接近传感器716用于采集用户与终端700的正面之间的距离。在一个实施例中,当接近传感器716检测到用户与终端700的正面之间的距离逐渐变小时,由处理器701控制显示屏705从亮屏状态切换为息屏状态;当接近传感器716检测到用户与终端700的正面之间的距离逐渐变大时,由处理器701控制显示屏705从息屏状态切换为亮屏状态。
本领域技术人员可以理解,图7中示出的结构并不构成对终端700的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
在一些实施例中,电子设备提供为服务器。图8是根据一示例性实施例示出的一种服务器的结构示意图,该服务器800可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(Central Processing Units,CPU)801和一个或一个以上的存储器802,其中,存储器802中存储有至少一条程序代码,该至少一条程序代码由处理器801加载并执行以实现上述各个方法实施例提供的方法。当然,该服务器还可以具有有线或无线网络接口、键盘以及输入输出接口等部件,以便进行输入输出,该服务器还可以包括其他用于实现设备功能的部件,在此不做赘述。
在示例性实施例中,还提供了一种非临时性计算机可读存储介质,当存储介质中的程序代码由电子设备的处理器执行时,使得电子设备能够执行上述页面渲染方法中终端或服务器所执行的步骤。可选地,存储介质可以是非临时性计算机可读存储介质,例如,该非临时性计算机可读存储介质能够是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
在示例性实施例中,还提供了一种非临时性计算机可读存储介质,当存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行上述页面渲染方法中终端或服务器所执行的步骤。
在示例性实施例中,还提供了一种计算机程序产品,当计算机程序产品中的指令由电子设备的处理器执行时,使得电子设备能够执行上述页面渲染方法中终端或服务器所执行的步骤。
本领域技术人员在考虑说明书及实践这里的公开后,将容易想到本公开的其它实施方案。本公开旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。

Claims (10)

1.一种页面渲染方法,其特征在于,所述页面渲染方法包括:
响应于对目标页面的展示指令,基于所述目标页面的页面数据,在原生环境中创建第一对象,所述页面数据包括控件属性信息,所述控件属性信息用于表示所述目标页面中的控件;
在数据加载环境中,创建第二对象,所述第二对象与所述第一对象关联且所述第二对象与所述控件属性信息关联,所述数据加载环境用于加载页面的页面数据;
通过所述第二对象,向所述第一对象发送所述控件属性信息;
通过所述第一对象,接收所述控件属性信息,基于所述控件属性信息进行渲染。
2.根据权利要求1所述的页面渲染方法,其特征在于,所述响应于对目标页面的展示指令,基于所述目标页面的页面数据,在原生环境中创建第一对象之前,所述页面渲染方法还包括:
在应用启动时,运行应用框架;
通过所述应用框架创建所述数据加载环境;
通过所述应用框架,将所述应用框架中的类信息注入所述数据加载环境中,所述类信息包括渲染接口标识与属性标识之间的对应关系,所述渲染接口标识用于指示所述原生环境中的类包含的渲染接口,所述属性标识用于指示所述类包含的控件属性信息。
3.根据权利要求1所述的页面渲染方法,其特征在于,所述响应于对目标页面的展示指令,基于所述目标页面的页面数据,在原生环境中创建第一对象,包括:
响应于所述展示指令,通过所述数据加载环境对所述页面数据进行解析,得到所述控件属性信息及对应的类标识,所述类标识用于指示所述控件的类;
通过所述数据加载环境,向所述原生环境发送所述类标识;
通过所述原生环境,创建所述类标识对应的所述第一对象。
4.根据权利要求3所述的页面渲染方法,其特征在于,所述通过所述数据加载环境,向所述原生环境发送所述类标识,包括:
通过所述数据加载环境,调用所述原生环境提供的类标识传输接口,向所述原生环境发送所述类标识。
5.根据权利要求3所述的页面渲染方法,其特征在于,所述在数据加载环境中,创建第二对象,包括:
通过所述数据加载环境,创建与所述第一对象关联的第二对象;
建立所述第二对象与所述第一对象对应的控件属性信息之间的关联关系。
6.根据权利要求5所述的页面渲染方法,其特征在于,所述通过所述数据加载环境,创建与所述第一对象关联的第二对象之后,所述页面渲染方法还包括:
确定所述第一对象对应的类标识匹配的类信息;
建立所述第二对象与所述类信息之间的关联关系。
7.一种页面渲染装置,其特征在于,所述页面渲染装置包括:
创建单元,被配置为执行响应于对目标页面的展示指令,基于所述目标页面的页面数据,在原生环境中创建第一对象,所述页面数据包括控件属性信息,所述控件属性信息用于表示所述目标页面中的控件;
所述创建单元,还被配置为执行在数据加载环境中,创建第二对象,所述第二对象与所述第一对象关联且所述第二对象与所述控件属性信息关联,所述数据加载环境用于加载页面的页面数据;
发送单元,被配置为执行通过所述第二对象,向所述第一对象发送所述控件属性信息;
渲染单元,被配置为执行通过所述第一对象,接收所述控件属性信息,基于所述控件属性信息进行渲染。
8.一种电子设备,其特征在于,所述电子设备包括:
一个或多个处理器;
用于存储所述一个或多个处理器可执行指令的易失性或非易失性存储器;
其中,所述一个或多个处理器被配置为执行如权利要求1至权利要求6任一项所述的页面渲染方法。
9.一种非临时性计算机可读存储介质,其特征在于,当所述存储介质中的指令由电子设备的处理器执行时,使得所述电子设备能够执行如权利要求1至权利要求6任一项所述的页面渲染方法。
10.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至权利要求6任一项所述的页面渲染方法。
CN202110341193.7A 2021-03-30 2021-03-30 页面渲染方法、装置、电子设备及存储介质 Active CN113051015B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110341193.7A CN113051015B (zh) 2021-03-30 2021-03-30 页面渲染方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110341193.7A CN113051015B (zh) 2021-03-30 2021-03-30 页面渲染方法、装置、电子设备及存储介质

Publications (2)

Publication Number Publication Date
CN113051015A true CN113051015A (zh) 2021-06-29
CN113051015B CN113051015B (zh) 2024-01-09

Family

ID=76516512

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110341193.7A Active CN113051015B (zh) 2021-03-30 2021-03-30 页面渲染方法、装置、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN113051015B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113760438A (zh) * 2021-09-22 2021-12-07 京东科技信息技术有限公司 网页应用的页面显示方法及装置

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108647076A (zh) * 2018-05-14 2018-10-12 阿里巴巴集团控股有限公司 一种页面处理方法、装置及设备
CN109358936A (zh) * 2018-09-29 2019-02-19 Oppo广东移动通信有限公司 信息处理方法、装置、存储介质、电子设备及系统
CN109710259A (zh) * 2018-12-28 2019-05-03 北京小米移动软件有限公司 一种数据处理方法、装置及存储介质
CN110806905A (zh) * 2019-10-30 2020-02-18 网易(杭州)网络有限公司 用户页面处理方法与装置、电子设备、存储介质
CN111008083A (zh) * 2019-11-21 2020-04-14 北京达佳互联信息技术有限公司 页面通信方法、装置、电子设备及存储介质
CN111984888A (zh) * 2019-05-24 2020-11-24 阿里巴巴集团控股有限公司 页面渲染方法、装置、电子设备及计算机可读介质
CN112035768A (zh) * 2020-08-27 2020-12-04 深圳市欢太科技有限公司 快应用的页面渲染方法、装置、存储介质及电子设备

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108647076A (zh) * 2018-05-14 2018-10-12 阿里巴巴集团控股有限公司 一种页面处理方法、装置及设备
CN109358936A (zh) * 2018-09-29 2019-02-19 Oppo广东移动通信有限公司 信息处理方法、装置、存储介质、电子设备及系统
CN109710259A (zh) * 2018-12-28 2019-05-03 北京小米移动软件有限公司 一种数据处理方法、装置及存储介质
CN111984888A (zh) * 2019-05-24 2020-11-24 阿里巴巴集团控股有限公司 页面渲染方法、装置、电子设备及计算机可读介质
CN110806905A (zh) * 2019-10-30 2020-02-18 网易(杭州)网络有限公司 用户页面处理方法与装置、电子设备、存储介质
CN111008083A (zh) * 2019-11-21 2020-04-14 北京达佳互联信息技术有限公司 页面通信方法、装置、电子设备及存储介质
CN112035768A (zh) * 2020-08-27 2020-12-04 深圳市欢太科技有限公司 快应用的页面渲染方法、装置、存储介质及电子设备

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113760438A (zh) * 2021-09-22 2021-12-07 京东科技信息技术有限公司 网页应用的页面显示方法及装置

Also Published As

Publication number Publication date
CN113051015B (zh) 2024-01-09

Similar Documents

Publication Publication Date Title
CN110674022B (zh) 行为数据获取方法、装置及存储介质
CN110841285B (zh) 界面元素的显示方法、装置、计算机设备及存储介质
CN110308956B (zh) 一种应用界面显示方法、装置及移动终端
CN110740340B (zh) 视频直播方法及装置、存储介质
CN108717365B (zh) 在应用程序中执行功能的方法和装置
CN111866140A (zh) 融合管理设备、管理系统、服务调用方法及介质
CN110677713B (zh) 视频图像处理方法及装置、存储介质
CN112612539B (zh) 数据模型卸载方法、装置、电子设备及存储介质
CN111008083B (zh) 页面通信方法、装置、电子设备及存储介质
CN113051015B (zh) 页面渲染方法、装置、电子设备及存储介质
CN112612540B (zh) 数据模型配置方法、装置、电子设备及存储介质
CN112597417B (zh) 页面更新方法、装置、电子设备及存储介质
CN112188268B (zh) 虚拟场景展示方法、虚拟场景的介绍视频生成方法及装置
CN109618018B (zh) 用户头像显示方法、装置、终端、服务器及存储介质
CN114329292A (zh) 资源信息的配置方法、装置、电子设备以及存储介质
CN111064657B (zh) 关注账户分组的方法、装置、系统
CN113076452A (zh) 应用分类的方法、装置、设备及计算机可读存储介质
CN112783533A (zh) 版本信息更新方法、装置、终端及存储介质
CN113268234A (zh) 页面生成方法、装置、终端和存储介质
CN112596810B (zh) 加载提示信息显示方法、装置、电子设备及存储介质
CN111580892B (zh) 一种业务组件调用的方法、装置、终端和存储介质
CN111414563B (zh) 网页交互的方法、装置、计算机设备和存储介质
CN111522576B (zh) 应用管理方法、装置、设备及计算机存储介质
CN112596810A (zh) 加载提示信息显示方法、装置、电子设备及存储介质
CN112115061A (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