页面渲染方法及设备与流程

文档序号:18740615发布日期:2019-09-21 01:43阅读:168来源:国知局
本公开实施例涉及网络
技术领域
:,尤其涉及一种页面渲染方法及设备。
背景技术
::随着互联网技术的不断发展,互联网已经深入到人们日常生活的方方面面。在使用浏览器访问网页资源时,需要对网页资源进行渲染,生成网页页面展示给用户。目前,常用的页面渲染方法是通过页面数据渲染对应的模板实现的,页面数据的类型和数量通常由开发人员设定。渲染流程包括:接收请求、准备数据、载入模板、将数据注入渲染上下文、使用渲染上下文渲染模板。然而,发明人发现,在不同的场景下,渲染上下文中常常会存在未被模板使用的数据,这些未被模板使用的数据会增加额外的计算消耗,导致渲染时间长,效率低。技术实现要素:本公开实施例提供一种页面渲染方法及设备,能够提高页面渲染的效率。第一方面,本公开实施例提供一种页面渲染方法,包括:获取渲染模板;提取所述渲染模板中的变量的标识信息;根据所述变量的标识信息获取对应的变量值;根据所述变量值和所述渲染模板生成渲染页面。一种可能的实现方式中,所述根据所述变量值和所述渲染模板生成渲染页面,包括:将所述变量的标识信息与对应的变量值注入到渲染上下文中;通过所述渲染上下文渲染所述渲染模板,生成渲染页面。一种可能的实现方式中,所述将所述变量的标识信息与对应的变量值注入到渲染上下文中之前,还包括:将所述变量值的格式转换为预设格式。一种可能的实现方式中,所述渲染模板通过字符串的形式表示;所述提取渲染模板中的变量的标识信息,包括:对所述渲染模板进行解析,得到所述渲染模板对应的字符串中的特定分隔符;确定与所述特定分隔符对应的变量的标识信息。一种可能的实现方式中,所述根据所述变量的标识信息获取对应的变量值,包括:根据所述变量的标识信息确定变量值的存储位置;从所述存储位置获取与所述变量的标识信息对应的变量值。一种可能的实现方式中,所述获取渲染模板,包括:获取用户发送的网页浏览请求,所述网页浏览请求携带统一资源定位符;根据所述网页浏览请求携带的统一资源定位符获取对应的渲染模板。第二方面,本公开实施例提供一种页面渲染装置,包括:第一获取模块,用于获取渲染模板;提取模块,用于提取所述渲染模板中的变量的标识信息;第二获取模块,用于根据所述变量的标识信息获取对应的变量值;渲染模块,用于根据所述变量值和所述渲染模板生成渲染页面。一种可能的实现方式中,所述渲染模块,具体用于将所述变量的标识信息与对应的变量值注入到渲染上下文中;通过所述渲染上下文渲染所述渲染模板,生成渲染页面。一种可能的实现方式中,所述渲染模块用于步骤将所述变量的标识信息与对应的变量值注入到渲染上下文中之前,还用于将所述变量值的格式转换为预设格式。一种可能的实现方式中,所述渲染模板通过字符串的形式表示;所述提取模块,具体用于对所述渲染模板进行解析,得到所述渲染模板对应的字符串中的特定分隔符;确定与所述特定分隔符对应的变量的标识信息。一种可能的实现方式中,所述第二获取模块,具体用于根据所述变量的标识信息确定变量值的存储位置;从所述存储位置获取与所述变量的标识信息对应的变量值。一种可能的实现方式中,所述第一获取模块,具体用于获取用户发送的网页浏览请求,所述网页浏览请求携带统一资源定位符;根据所述网页浏览请求携带的统一资源定位符获取对应的渲染模板。第三方面,本公开实施例提供一种电子设备,包括:至少一个处理器和存储器;所述存储器存储计算机执行指令;所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述至少一个处理器执行如本公开实施例第一方面任一项所述的页面渲染方法。第四方面,本公开实施例提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如本公开实施例第一方面任一项所述的页面渲染方法。本公开实施例提供的页面渲染方法及设备,该方法通过获取渲染模板,提取所述渲染模板中的变量的标识信息,根据所述变量的标识信息获取对应的变量值,根据所述变量值和所述渲染模板生成渲染页面,从而实现根据不同的渲染模板准备变量,所有准备的变量均是模板需要的变量,不存在未被模板使用的变量,能够减小计算消耗,降低渲染时间,提高渲染效率。附图说明为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1为本公开实施例提供的页面渲染系统的架构图;图2为本公开实施例提供的页面渲染方法的流程图一;图3为本公开实施例提供的页面渲染方法的流程图二;图4为本公开实施例提供的页面渲染方法的流程图三;图5为本公开实施例提供的页面渲染方法的流程图四;图6为本公开实施例提供的页面渲染装置的结构示意;图7为本公开实施例提供的电子设备的硬件结构示意图。具体实施方式下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。本公开实施例的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。图1为本公开实施例提供的页面渲染系统的架构图,如图1所示,本公开实施例的页面渲染系统包括终端101和服务器102,终端101和服务器102通过网络103连接。其中,终端101为用户浏览网页的电子设备,包括但不限于:台式电脑、笔记本电脑、平板电脑、手机、智能穿戴设备等。具体的,终端101上可以安装浏览器,用户可以通过浏览器浏览网页。其中,浏览器可以为网页浏览器,如IE(InternetExplorer),也可以为开源网页浏览器,如火狐狸(FIREFOX)等任何类型的浏览器。服务器102包括但不限于台服务器、或多台服务器组成的服务器集群,也可以是云服务计算平台。服务器可以完成对网页页面的渲染,并将生成的渲染页面在终端101上显示。下面以具体地实施例对本公开实施例的技术方案进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例不再赘述。图2为本公开实施例提供的页面渲染方法的流程图一,本公开实施例的执行主体为图1中的服务器。如图2所示,本公开实施例的方法,可以包括:步骤S201,获取渲染模板。在本公开实施例中,渲染模板用于描述网页页面布局,网页页面布局包括网页控件的排列方式、类型、形状和位置信息等。渲染模板可以通过JS对象简谱(JavaScriptObjectNotation,简称JSON)文件描述。JSON是一种轻量级的数据交换格式,采用完全独立于编程语言的文本格式来存储和表示数据,易于机器解析和生成,并有效地提升网络传输效率。应理解的是,渲染模板也可以通过其他格式的文件描述,本公开实施例不做具体限定存储器中存储多个渲染模板,服务器可以根据页面的标识从存储器中获取对应的渲染模板,页面的标识可以为页面对应的域名或者IP地址。步骤S202,提取所述渲染模板中的变量的标识信息。在本公开实施例中,渲染模板中包括多种变量,变量的标识信息可以为变量名,例如,用户名、用户年龄等。步骤S203,根据所述变量的标识信息获取对应的变量值。在本公开实施例中,服务器可以根据页面的标识获取对应的页面数据文件,页面数据文件用于描述待显示的网页页面内容。一个渲染模板可以对应一个或多个页面数据文件。页面数据文件中存储变量的标识信息以及对应的变量值。服务器根据变量的标识信息从页面数据文件中获取对应的变量值。一种可能的实现方式中,服务器获取目标变量的标识信息,根据目标变量的标识信息,遍历页面数据文件中存储的变量的标识信息以及对应的变量值,获取与目标变量的标识信息对应的变量值,其中,目标变量的标识信息为变量的标识信息中的任一个。步骤S204,根据所述变量值和所述渲染模板生成渲染页面。在本公开实施例中,通过变量值对渲染模板进行渲染,生成渲染页面,并将渲染页面返回至终端,以便于终端对渲染页面转换后显示给用户本公开实施例通过获取渲染模板,提取所述渲染模板中的变量的标识信息,根据所述变量的标识信息获取对应的变量值,根据所述变量值和所述渲染模板生成渲染页面,从而实现根据不同的渲染模板准备变量,所有准备的变量均是模板需要的变量,不存在未被模板使用的变量,能够减小计算消耗,降低渲染时间,提高渲染效率。图3为本公开实施例提供的页面渲染方法的流程图二,如图3所示,本公开实施例的方法,可以包括:步骤S301,获取渲染模板。步骤S302,提取所述渲染模板中的变量的标识信息。步骤S303,根据所述变量的标识信息获取对应的变量值。在本公开实施例中,步骤S301至步骤S303的实现方式与图2所示的步骤S201至步骤S202的实现方式相同,本公开实施例不再赘述。步骤S304,将所述变量的标识信息与对应的变量值注入到渲染上下文中。步骤S305,通过所述渲染上下文渲染所述渲染模板,生成渲染页面。在本公开实施例中,将变量的标识信息与对应的变量值保存至渲染上下文(context)中,通过渲染上下文对渲染模板进行渲染,生成渲染页面。步骤S305的一种可能的实现方式为:对渲染模板进行解析,得到抽象语法树,遍历抽象语法树中的节点,每碰到一个节点,获取该节点的变量的标识信息,根据该变量的标识信息在渲染上下文中查找对应的变量值,用该变量值渲染这个节点,在抽象语法树中的每个节点渲染后,生成渲染页面。本公开实施例通过将变量的标识信息与对应的变量值注入到渲染上下,使用渲染上下文对渲染模板进行渲染,渲染上下文中存储的所有变量均是渲染模板需要使用的变量,不存在未被模板使用的变量,能够减小计算消耗,降低渲染时间,提高渲染效率。作为本公开的一个实施例,在上述图3所示实施例的基础上,步骤S304之前,还包括:将所述变量值的格式转换为预设格式。在本公开实施例中,不同的网页页面可能对应相同的变量值,但是变量值的格式可能不相同,因此,需要对变量格式进行转换,将变量值转换为符合网页页面要求的格式。预设格式可以由开发人员进行设定。开发人员根据页面的标识预先设定不同变量值的变量格式,并将不同变量值对应的变量格式存储在存储器中。服务器从存储器中获取变量值对应的预设格式,并判断该变量值的当前格式是否符合预设格式,若该变量值的当前格式不符合预设格式,则对该变量值进行格式转换,将该变量值转换为预设格式。对变量值进行格式转换的方法为本领域的常用方法,本公开实施例不做具体阐述。图4为本公开实施例提供的页面渲染方法的流程图三,在上述图2或图3所示实施例的基础上,本公开实施例详细描述步骤提取渲染模板中的变量的标识信息的一种可能的实现方式。在本公开实施例中,所述渲染模板通过字符串的形式表示。如图4所示,本公开实施例的方法,可以包括:步骤S401,对所述渲染模板进行解析,得到所述渲染模板对应的字符串中的特定分隔符。步骤S402,确定与所述特定分隔符对应的变量的标识信息。在本公开实施例中,渲染模板中包含多个分隔符,其中,只有特定分隔符对应的是变量的标识信息。特定分隔符可以由开发人员进行设定,开发人员设定特定分隔符,并将该特定分隔符存储在存储其中。例如,特定分隔符可以为双引号“”、括号{}等。服务器遍历渲染模板对应的字符串中的分隔符,每碰到一个分隔符,判断该分隔符是否为特定分隔符,若该分隔符为特定分隔符,则获取该分隔符对应的变量的标识信息,直至遍历完字符串中所有的分隔符为止。例如,字符串中包括{name}、“size”,其中,{}和“”为特定分隔符,则对应的变量的标识信息为name和size。本公开实施例通过渲染模板中特定的分隔符得到变量的标识信息,简单方便,易于实现。图5为本公开实施例提供的页面渲染方法的流程图三,在上述图2或图3所示实施例的基础上,本公开实施例详细描述步骤根据所述变量的标识信息获取对应的变量值的一种可能的实现方式。如图5所示,本公开实施例的方法可以包括:步骤S501,根据所述变量的标识信息确定变量值的存储位置。步骤S502,从所述存储位置获取与所述变量的标识信息对应的变量值。在本公开实施例中,不同变量值的存储位置不同,例如,变量值可以存储在不同的数据库中。开发人员预先设定变量值与存储位置的对应关系列表,并将该对应关系列表存储至存储器中。服务器根据对应关系列表确定变量的标识信息对应的变量值的存储位置,并从该存储位置获取对应的变量值。作为本公开的一个实施例,在上述图2或图3所示实施例的基础上,步骤获取渲染模板的一种可能的实现方式包括:获取用户发送的网页浏览请求,所述网页浏览请求携带统一资源定位符;根据所述网页浏览请求携带的统一资源定位符获取对应的渲染模板。在本公开实施例中,用户通过终端浏览器向服务器发送网页浏览请求,服务器接收到该网页浏览请求后,对该网页浏览请求进行解析,得到网页浏览请求携带的统一资源定位符(UniformResourceLocator,简称URL),服务器根据URL获取对应的渲染模板。图6为本公开实施例提供的页面渲染装置的结构示意,如图6所示,本公开实施例的装置,可以包括:第一获取模块601、提取模块602、第二获取模块603和渲染模块604,各模块的具体功能如下:第一获取模块601,用于获取渲染模板;提取模块602,用于提取所述渲染模板中的变量的标识信息;第二获取模块603,用于根据所述变量的标识信息获取对应的变量值;渲染模块604,用于根据所述变量值和所述渲染模板生成渲染页面。一种可能的实现方式中,所述渲染模块604,具体用于将所述变量的标识信息与对应的变量值注入到渲染上下文中;通过所述渲染上下文渲染所述渲染模板,生成渲染页面。一种可能的实现方式中,所述渲染模块604用于步骤将所述变量的标识信息与对应的变量值注入到渲染上下文中之前,还用于将所述变量值的格式转换为预设格式。一种可能的实现方式中,所述渲染模板通过字符串的形式表示;所述提取模块602,具体用于对所述渲染模板进行解析,得到所述渲染模板对应的字符串中的特定分隔符;确定与所述特定分隔符对应的变量的标识信息。一种可能的实现方式中,所述第二获取模块603,具体用于根据所述变量的标识信息确定变量值的存储位置;从所述存储位置获取与所述变量的标识信息对应的变量值。一种可能的实现方式中,所述第一获取模块601,具体用于获取用户发送的网页浏览请求,所述网页浏览请求携带统一资源定位符;根据所述网页浏览请求携带的统一资源定位符获取对应的渲染模板。本公开实施例的装置,可用于执行如图2至图5所示的方法实施例,其实现原理和技术效果类似,此处不再赘述。参考图7,其示出了适于用来实现本公开实施例的电子设备700的结构示意图,该电子设备700可以为终端设备或服务器。其中,终端设备可以包括但不限于诸如移动电话、笔记本电脑、数字广播接收器、个人数字助理(PersonalDigitalAssistant,简称PDA)、平板电脑(PortableAndroidDevice,简称PAD)、便携式多媒体播放器(PortableMediaPlayer,简称PMP)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字TV、台式计算机等等的固定终端。图7示出的电子设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。如图7所示,电子设备700可以包括处理装置(例如中央处理器、图形处理器等)701,其可以根据存储在只读存储器(ReadOnlyMemory,简称ROM)702中的程序或者从存储装置708加载到随机访问存储器(RandomAccessMemory,简称RAM)703中的程序而执行各种适当的动作和处理。在RAM703中,还存储有电子设备700操作所需的各种程序和数据。处理装置701、ROM702以及RAM703通过总线704彼此相连。输入/输出(I/O)接口705也连接至总线704。通常,以下装置可以连接至I/O接口705:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置706;包括例如液晶显示器(LiquidCrystalDisplay,简称LCD)、扬声器、振动器等的输出装置707;包括例如磁带、硬盘等的存储装置708;以及通信装置709。通信装置709可以允许电子设备700与其他设备进行无线或有线通信以交换数据。虽然图7示出了具有各种装置的电子设备700,但是应理解的是,并不要求实施或具备所有示出的装置。可以替代地实施或具备更多或更少的装置。特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置709从网络上被下载和安装,或者从存储装置708被安装,或者从ROM702被安装。在该计算机程序被处理装置701执行时,执行本公开实施例的方法中限定的上述功能。需要说明的是,本公开上述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、RF(射频)等等,或者上述的任意合适的组合。上述计算机可读介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备执行上述实施例所示的方法。可以以一种或多种程序设计语言或其组合来编写用于执行本公开的操作的计算机程序代码,上述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LocalAreaNetwork,简称LAN)或广域网(WideAreaNetwork,简称WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。描述于本公开实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。最后应说明的是:以上各实施例仅用以说明本公开的技术方案,而非对其限制;尽管参照前述各实施例对本公开进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本公开各实施例技术方案的范围。当前第1页1 2 3 当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1