一种页面渲染方法及装置与流程

文档序号:12063327阅读:175来源:国知局
一种页面渲染方法及装置与流程

本发明涉及软件工程技术领域,更具体的说,是涉及一种页面渲染方法及装置。



背景技术:

软件工程是研究和应用如何以系统性的、规范化的、可定量的过程化方法去开发和维护软件的学科。从软件开发的观点看,它就是使用适当的资源(包括人员、软硬件资源、时间等),为开发软件进行的一组开发活动,在活动结束时输入(即用户的需求)转化为输出(最终符合用户需求的软件产品)。

在软件开发过程中,需要尽量满足DRY(Don’t repeat yourself,不要重复你自己)原则,针对页面处理,通常情况下,有许多页面是有一定的相似性的,这样就要把多个页面中重复的一些内容写入到新的文件中。比如,要做一个网站,每个页面中的头部和尾部的内容都是相同的,仅仅是中间的内容部分有所区别,此时传统的方式是把头部的内容放到header资源中,把尾部的内容放到footer资源中,然后在需要引用这些内容的地方(比如,页面渲染的时候),采用显式声明的方式(如:include<header>,include<footer>)进行内容引入。

但是,上述显式声明的引用方式,引入时需要给出引入资源的实际位置,当这些资源的位置或名称有变化的时候,重构的成本及重构后的测试验证的成本更高,容易造成引入缺陷。

而且,在特殊情况下,某些页面渲染的时候,可能其要引入的资源中,大部分要引入的内容是相同的,但是又有一小部分内容是不同的,这个时候,传统方式则只能把要引入的资源复制成一个新的资源,然后对新的资源局部修改,这样,新的资源与之前要引入的资源则会存在大部分重复性内容,违 反了DRY原则,当有多个页面存在上述特殊情况,则会导致修改许多资源的,增加了开发和维护的成本,还可能造成引入缺陷。



技术实现要素:

有鉴于此,本发明提供了一种,以克服现有技术中由于的问题。

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

一种页面渲染方法,预先以一个标示路径标示多个资源,包括:

渲染所述多个资源中的模板资源获取所述模板资源的内容;

根据所述标示路径确定当前目录;

当所述当前目录不是根目录时,执行如下步骤:

在所述当前目录下查找是否存在与所述模板资源同名的同名布局资源;

如果存在,则将所述模板资源的内容渲染到所述同名布局资源中;

如果不存在,则在所述当前目录下查找是否存在默认布局资源;

如果存在,则将所述模板资源的内容渲染到所述默认布局资源中;

以所述当前目录的上一目录作为当前目录。

可选的,所述标示路径为/A1/…/An-1/An/filename,其中,A1、…、An-1、An为所述标示路径中所包含的n个目录的名称,n为不小于0的整数;filename为所述标示路径标示的资源的名称。

可选的,布局资源内部设置有模板资源占位符。

可选的,所述将所述模板资源的内容渲染到所述同名布局资源中,具体包括:

将所述模板资源的内容渲染到所述同名布局资源中的模板资源占位符的位置。

可选的,所述将所述模板资源的内容渲染到所述默认布局资源中,具体包括:

将所述模板资源的内容渲染到所述默认布局资源中的模板资源占位符的位置。

一种页面渲染装置,包括:

标示单元,用于预先以一个标示路径标示多个资源;

渲染单元,用于渲染所述多个资源中的模板资源获取所述模板资源的内容;

以及,根据所述标示路径确定当前目录;

以及,当所述当前目录不是根目录时,执行如下步骤:

在所述当前目录下查找是否存在与所述模板资源同名的同名布局资源;

如果存在,则将所述模板资源的内容渲染到所述同名布局资源中;

如果不存在,则在所述当前目录下查找是否存在默认布局资源;

如果存在,则将所述模板资源的内容渲染到所述默认布局资源中;

以所述当前目录的上一目录作为当前目录。

可选的,所述标示路径为/A1/…/An-1/An/filename,其中,A1、…、An-1、An为所述标示路径中所包含的n个目录的名称,n为不小于0的整数;filename为所述标示路径标示的资源的名称。

可选的,布局资源内部设置有模板资源占位符。

可选的,所述渲染单元具体用于:

将所述模板资源的内容渲染到所述同名布局资源中的模板资源占位符的位置。

可选的,所述渲染单元具体用于:

将所述模板资源的内容渲染到所述默认布局资源中的模板资源占位符的位置。

经由上述的技术方案可知,与现有技术相比,本发明公开了一种页面渲染方法及装置,不论多个资源的实际位置在哪里,都预先以一个标示路径标示上述多个资源,这样资源引入时根据标示路径即可,资源的实际位置变化将不会影响资源的正确引入。而且,将要引入的资源中不同的一小部分内容,分别设置了默认布局资源和同名布局资源的概念,在非特殊情况下,使用默认布局资源即可,而在特殊情况下,使用同名布局资源即可,默认布局资源和同名布局资源不重复,符合DRY原则。另外,当多个页面存在特殊情况时,仅增加对应的同名布局资源即可,减少了开发和维护的成本,保证了资源引入的准确性。

附图说明

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

图1为本发明实施例公开的一种页面渲染方法的流程示意图;

图2为本发明实施例公开的另一种页面渲染方法的流程示意图;

图3为本发明实施例公开一种页面渲染装置的结构示意图。

具体实施方式

为了引用和清楚起见,下文中使用的技术名词的说明、简写或缩写总结如下:

DRY原则:Do not repeat yourself,不要重复你自己原则,旨在软件开发中,减少重复的信息,当DRY原则被成功应用时,一个系统中任何单个元素的修改都不需要与其逻辑无关的其他元素发生改变,此外,与之逻辑上相关的其他元素的变化均为可预见的、均匀的,并保持同步。

资源路径(PATH):在模板引擎中,需要用到各种的资源,这些资源在访问时必须有唯一的路径,为了屏蔽不同来源差异,给所有的资源都定义了统一的格式,这里采用Unix/Linux的文件路径格式来描述资源路径。资源路径分成两个部分,最后一个“/”后面的部分为资源名,前面,含“/”的部分为路径名。比如:“/aa/bb/cc/def.abc”,表示这是一个资源,其资源名是“def.abc”,其路径为“/aa/bb/cc/”

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的术语在适当情况下可以互换,这仅仅是描述本发明的实施例中对相同属性的对象在描述时所采用的区分方式。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,以便包含一系列单元的过程、方法、系统、产品或设备不必限于那些单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它单元。

由背景技术可知,现有技术中,显式声明的引用方式,引入时需要给出引入资源的实际位置,当这些资源的位置或名称有变化的时候,重构的成本及重构后的测试验证的成本更高,容易造成引入缺陷。而且,在特殊情况下,某些页面渲染的时候,可能其要引入的资源中,大部分要引入的内容是相同 的,但是又有一小部分内容是不同的,这个时候,传统方式则只能把要引入的资源复制成一个新的资源,然后对新的资源局部修改,这样,新的资源与之前要引入的资源则会存在大部分重复性内容,违反了DRY原则,当有多个页面存在上述特殊情况,则会导致修改许多资源的,增加了开发和维护的成本,还可能造成引入缺陷。

为此,本发明公开了一种页面渲染方法及装置,不论多个资源的实际位置在哪里,都预先以一个标示路径标示上述多个资源,这样资源引入时根据标示路径即可,资源的实际位置变化将不会影响资源的正确引入。而且,将要引入的资源中不同的一小部分内容,分别设置了默认布局资源和同名布局资源的概念,在非特殊情况下,使用默认布局资源即可,而在特殊情况下,使用同名布局资源即可,默认布局资源和同名布局资源不重复,符合DRY原则。另外,当多个页面存在特殊情况时,仅增加对应的同名布局资源即可,减少了开发和维护的成本,保证了资源引入的准确性。

为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。

请参阅附图1,为本发明实施例公开的一种页面渲染方法的流程示意图。

在进行页面渲染之前,需要预先以一个标示路径标示多个资源,即,不论上述多个资源的实际位置是在本地文件中,还是在FTP服务器中,还是在Web服务器中,还是在Jar、zip等压缩文件中、还是在关系数据库、NoSql数据库等数据库中,最后都必须以一个唯一的标示路径来进行标示。。在以一个标示路径标示多个资源之后,不管某个资源的原始路径在哪里,只要其标示路径相同,则表示是同一个资源。

在预先以一个标示路径标示多个资源之后,所述页面渲染方法具体包括如下步骤:

S101:渲染所述多个资源中的模板资源获取所述模板资源的内容。

资源的类型有两种,一种叫布局资源,一种叫模板资源,模板资源进行渲染后,根据渲染规则进行布局资源查找,找到合适的布局资源之后,把模板资源的内容渲染到布局资源中。

S102:根据所述标示路径确定当前目录。

S103:在所述当前目录下查找是否存在与所述模板资源同名的同名布局资源,如果不存在,在执行步骤S104,如果存在,则执行步骤S105。

在本实施例中,需要提前将要引入的资源中不同的一小部分内容,分别设置默认布局资源和同名布局资源,在大多数的情况下(即非特殊情况下),使用默认布局资源即可,在个别情况下(即特殊情况下),使用同名布局资源即可,默认布局资源和同名布局资源不重复,符合DRY原则。另外,当多个页面存在特殊情况时,仅增加对应的同名布局资源即可,减少了开发和维护的成本,保证了资源引入的准确性。

S104:在所述当前目录下查找是否存在默认布局资源,如果存在,则执行步骤S106,如果不存在,则执行步骤S107。

在页面渲染的过程中,先判定是否是特殊情况,如果是特殊情况,则按特殊情况的方式处理,如果是非特殊情况,才按非特殊情况处理。

S105:将所述模板资源的内容渲染到所述同名布局资源中。

S106:将所述模板资源的内容渲染到所述默认布局资源中。

S107:判断所述当前目录是否为根目录,如果不是,则以所述当前目录的上一目录作为当前目录,并返回执行步骤S103,如果是,则渲染结束。

本实施例公开了一种页面渲染方法,不论多个资源的实际位置在哪里,都预先以一个标示路径标示上述多个资源,这样资源引入时根据标示路径即可,资源的实际位置变化将不会影响资源的正确引入。而且,将要引入的资源中不同的一小部分内容,分别设置了默认布局资源和同名布局资源的概念,在非特殊情况下,使用默认布局资源即可,而在特殊情况下,使用同名布局 资源即可,默认布局资源和同名布局资源不重复,符合DRY原则。另外,当多个页面存在特殊情况时,仅增加对应的同名布局资源即可,减少了开发和维护的成本,保证了资源引入的准确性。

请参阅附图2,为本发明实施例公开的另一种页面渲染方法的流程示意图。

在进行页面渲染之前,需要预先以一个标示路径标示多个资源,即,不论上述多个资源的实际位置是在本地文件中,还是在FTP服务器中,还是在Web服务器中,还是在Jar、zip等压缩文件中、还是在关系数据库、NoSql数据库等数据库中,最后都必须以一个唯一的标示路径来进行标示,在本实施例中,以“/A1/…/An-1/An/filename”的形式来进行标示,其中,A1、…、An-1、An为所述标示路径中所包含的n个目录的名称,n为不小于0的整数;filename为所述标示路径标示的资源的名称。在以一个标示路径标示多个资源之后,不管某个资源的原始路径在哪里,只要其标示路径相同,则表示是同一个资源。

在以一个标示路径标示多个资源之后,上述多个资源最后的上层路径(即,根目录)一定是“/”,这样就带来一个好处,可以方便的进行资源路径的层次结构的比较。如果两个资源的标示路径相同,则表示它们在同一个目录中。比如:“/aa/bb/aa.page”和“/aa/bb/default.layout”这两个资源,就可以认为是在同一个目录中。

在预先以一个标示路径标示多个资源之后,所述页面渲染方法具体包括如下步骤:

S201:渲染所述多个资源中的模板资源获取所述模板资源的内容。

资源的类型有两种,一种叫布局资源,一种叫模板资源,布局资源和模板资源本质上没有区别,唯一的区别是在布局内部有一个模板资源占位符,模板资源占位符的形式可以为“#pageContent”,当然也可以是其它形式。模板资源占位符实际上是标示布局资源的一个插入点,也就是模板资源进行渲 染后,根据渲染规则进行布局资源查找,找到合适的布局资源之后,把模板资源的内容渲染到布局资源中这个模板资源占位符的位置。

另外在布局资源内还可以通过#layout(或类似)指令定义0到多个模板资源占位符,在模板资源占位符的位置可以设置默认显示内容,如果在页面资源中通过#@layout(或类似)指令声明最终要显示的内容(即,同名局部资源),则显示页面资源中声明的内容,否则显示布局资源中默认内容(即,默认局部资源)。

S202:根据所述标示路径确定当前目录。

以“/A1/…/An-1/An/filename”这种形式的标示路径来说,当前目录可以为An/、An-1/、……、A1/、/中的任意一个,在页面渲染的时候,一般从最底层目录(即An/)开始处理,直至处理到根目录为止。

S203:在所述当前目录下查找是否存在与所述模板资源同名的同名布局资源,如果不存在,在执行步骤S104,如果存在,则执行步骤S105。

在本实施例中,需要提前将要引入的资源中不同的一小部分内容,分别设置默认布局资源和同名布局资源,在大多数的情况下(即非特殊情况下),使用默认布局资源即可,在个别情况下(即特殊情况下),使用同名布局资源即可,默认布局资源和同名布局资源不重复,符合DRY原则。另外,当多个页面存在特殊情况时,仅增加对应的同名布局资源即可,减少了开发和维护的成本,保证了资源引入的准确性。

S204:在所述当前目录下查找是否存在默认布局资源,如果存在,则执行步骤S206,如果不存在,则执行步骤S207。

在页面渲染的过程中,先判定是否是特殊情况,如果是特殊情况,则按特殊情况的方式处理,如果是非特殊情况,才按非特殊情况处理。

S205:将所述模板资源的内容渲染到所述同名布局资源中的模板资源占位符的位置。

S206:将所述模板资源的内容渲染到所述默认布局资源中的模板资源占位符的位置。

S207:判断所述当前目录是否为根目录,如果不是,则以所述当前目录的上一目录作为当前目录,并返回执行步骤S203,如果是,则渲染结束。

本实施例公开了一种页面渲染方法,不论多个资源的实际位置在哪里,都预先以一个标示路径标示上述多个资源,这样资源引入时根据标示路径即可,资源的实际位置变化将不会影响资源的正确引入。而且,将要引入的资源中不同的一小部分内容,分别设置了默认布局资源和同名布局资源的概念,在非特殊情况下,使用默认布局资源即可,而在特殊情况下,使用同名布局资源即可,默认布局资源和同名布局资源不重复,符合DRY原则。另外,当多个页面存在特殊情况时,仅增加对应的同名布局资源即可,减少了开发和维护的成本,保证了资源引入的准确性。

上述本发明公开的实施例中详细描述了方法,对于本发明的方法可采用多种形式的装置实现,因此本发明还公开了一种装置,下面给出具体的实施例进行详细说明。

请参阅附图3,为本发明实施例公开一种页面渲染装置的结构示意图。

该页面渲染装置,包括如下单元:

标示单元10,用于预先以一个标示路径标示多个资源;

渲染单元11,用于渲染所述多个资源中的模板资源获取所述模板资源的内容;

以及,根据所述标示路径确定当前目录;

以及,当所述当前目录不是根目录时,执行如下步骤:

在所述当前目录下查找是否存在与所述模板资源同名的同名布局资源;

如果存在,则将所述模板资源的内容渲染到所述同名布局资源中;

如果不存在,则在所述当前目录下查找是否存在默认布局资源;

如果存在,则将所述模板资源的内容渲染到所述默认布局资源中;

以所述当前目录的上一目录作为当前目录。

需要说明的是,所述标示路径为/A1/…/An-1/An/filename,其中,A1、…、An-1、An为所述标示路径中所包含的n个目录的名称,n为不小于0的整数;filename为所述标示路径标示的资源的名称。

进一步需要说明的是,布局资源内部设置有模板资源占位符。

则所述渲染单元11具体用于:

将所述模板资源的内容渲染到所述同名布局资源中的模板资源占位符的位置。

所述渲染单元11具体用于:

将所述模板资源的内容渲染到所述默认布局资源中的模板资源占位符的位置。

上述各个单元的具体功能实现已在方法实施例中详细说明,本实施例不再赘述,具体请参见方法实施例中的相关内容。

综上所述:

本发明公开了一种页面渲染方法及装置,不论多个资源的实际位置在哪里,都预先以一个标示路径标示上述多个资源,这样资源引入时根据标示路径即可,资源的实际位置变化将不会影响资源的正确引入。而且,将要引入的资源中不同的一小部分内容,分别设置了默认布局资源和同名布局资源的概念,在非特殊情况下,使用默认布局资源即可,而在特殊情况下,使用同名布局资源即可,默认布局资源和同名布局资源不重复,符合DRY原则。另外,当多个页面存在特殊情况时,仅增加对应的同名布局资源即可,减少了开发和维护的成本,保证了资源引入的准确性。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

另外需说明的是,以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显式的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,本发明提供的装置实施例附图中,模块之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或多条通信总线或信号线。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件的方式来实现,当然也可以通过专用硬件包括专用集成电路、专用CPU、专用存储器、专用元器件等来实现。一般情况下,凡由计算机程序完成的功能都可以很容易地用相应的硬件来实现,而且,用来实现同一功能的具体硬件结构也可以是多种多样的,例如模拟电路、数字电路或专用电路等。但是,对本发明而言更多情况下软件程序实现是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘,U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。

综上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照上述实施例对本发明进行了详细的说明,本领域的普通技术人员应 当理解:其依然可以对上述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

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