具体实施方式
为了提高页面显示在多个浏览器的兼容性,本发明实施例提供一种页面显示方法,本发明中,对页面显示源代码进行浏览器兼容性检查,即识别页面显示源代码中的非标准标记并对该非标准标记进行处理,以消除页面显示源代码中的非标准标记。
参见图2,本发明实施例提供的页面显示方法,具体包括以下步骤:
步骤10:获取输入的页面显示源代码;
步骤11:查找所述页面显示源代码中的标记,确定查找到的标记是否是标准标记;所述标记是指表示页面元素属性的符号,所述标准标记是指设定的多种浏览器对其解析结果相同的标记;
步骤12:在确定查找到的标记是非标准标记时,按照预先设定的标记处理方法进行标记处理,以消除所述非标准标记;
步骤13:根据标记处理后得到的页面显示源代码进行页面显示。
步骤11中,确定查找到的标记是否是标准标记,其具体实现可以如下:
确定预先设定的标准标记集合中是否包含所述查找到的标记,若是,则确定所述查找到的标记是标准标记;否则,确定所述查找到的标记是非标准标记;或者,
确定预先设定的非标准标记集合中是否包含所述查找到的标记,若是,则确定所述查找到的标记是非标准标记;否则,确定所述查找到的标记是标准标记。
步骤12中,按照预先设定的标记处理方法进行标记处理,其具体实现可以如下:
根据预先设定的标准标记与非标准标记的映射关系,确定查找到的非标准标记所对应的标准标记,将该非标准标记替换为该标准标记;或者,
读取针对查找到的非标准标记设置的标记处理流程信息,并执行该标记处理流程。
具体在查找页面显示源代码中的标记时,可以首先解析页面显示源代码,将其中各标记按树型结构保存,然后按照一定的顺序对树型结构中各节点依次进行检查,判断该节点上的标记是否是标准标记,若是非标准标记,调用相应的标记处理方法进行处理。
步骤13中,根据标记处理后得到的页面显示源代码进行页面显示,其具体实现可以采用如下两种方式:
第一种,直接通过执行标记处理后得到的页面显示源代码显示页面;具体的:
在本地执行标记处理后得到的页面显示源代码,以进行页面显示。或者,将标记处理后得到的页面显示源代码发送给页面显示设备,页面显示设备执行该页面显示源代码,以进行页面显示。
第二种,将标记处理后得到的页面显示源代码转换为显示平台支持的代码,然后通过执行转换后的代码显示页面;具体的:
首先,确定进行页面显示所使用的平台的类型;
然后,根据预先设定的平台类型与代码转换方法的对应关系,确定所述平台的类型对应的代码转换方法;
接下来,按照所述代码转换方法,将标记处理后得到的页面显示源代码转换为用于在所述平台显示页面的平台相关目标代码;
最后,通过执行所述平台相关目标代码显示页面。这里,可以将平台相关目标代码发送给所述平台所在的页面显示设备,页面显示设备执行平台相关目标代码,以进行页面显示;或者,在本地执行平台相关目标代码,以进行页面显示。
上述将标记处理后得到的页面显示源代码转换为用于在所述平台显示页面的平台相关目标代码,其具体实现可以如下:
首先,读取标记处理后得到的页面显示源代码,根据预先设定的正则表达式确定该页面显示源代码中需要进行代码转换处理的代码片段;这里,正则表达式是用于描述代码片段范围的数据;
然后,对于各代码片段,按照为该代码片段设置的代码转换方式信息,对该代码片段进行代码转换处理,得到平台相关目标代码。
较佳的,在将标记处理后得到的页面显示源代码转换为平台相关目标代码之前,还可以识别页面显示源代码中存在的不符合浏览器代码规范的代码;并对识别出的代码部分更正为符合浏览器代码规范的代码,或者,发出代码不符合浏览器代码规范的提示信息,由代码编制人员对不符合浏览器代码规范的代码进行更正。
这里,不符合浏览器代码规范的代码包括:页面元素标签闭合不配对的代码、页面元素标签不闭合代码、未对属性赋值的代码、控件描述不合法、属性命名不合法的代码、节点关系不合法的代码中的一个或任意组合。
较佳的,在将标记处理后得到的页面显示源代码转换为平台相关目标代码之前,还可以对页面显示源代码进行搜索引擎优化处理,以提高搜索引擎搜索到该页面显示源代码显示的页面的可能性。例如,可以修改页面显示源代码中的页面标题,使得修改后的页面标题更规范,从而提高搜索引擎通过页面标题搜索到页面的可能性。
本发明中,页面显示源代码可以为平台无关的源代码,平台无关的源代码是使用预先定义的模型源语言编写的代码,模型源语言是一种描述业务与数据间逻辑关系的语言,一般包括两部分:基本的数据操作逻辑和扩展的逻辑判断。采用模型源语言编写的平台无关的源代码中包含描述页面的布局样式以及描述页面所需要的业务数据的信息。页面显示源代码可以采用浏览器支持的静态超文本标记语言(HTML)、层叠样式表(CSS)或Javascript等语言。
本发明中,显示页面所使用的平台的类型包括但不限于:支持.Net或JSP或PHP的平台。
为了对跨平台的页面显示提供支持,本发明实施例还提供一种页面显示方法,本发明中,将页面显示源代码进行跨平台转换,即在确定显示页面所使用的平台后,将页面显示源代码转换为该平台能够支持的代码,从而进行正确的页面显示。
本发明中,页面显示源代码可以为平台无关的源代码,平台无关的源代码是使用预先定义的模型源语言编写的代码,模型源语言是一种描述业务与数据间逻辑关系的语言,一般包括两部分:基本的数据操作逻辑和扩展的逻辑判断。采用模型源语言编写的平台无关的源代码中包含描述页面的布局样式以及描述页面所需要的业务数据的信息。页面显示源代码可以采用浏览器支持的HTML、CSS或Javascript等语言。
本发明中,显示页面所使用的平台的类型包括但不限于:支持.Net或JSP或PHP的平台。
本发明中,可以通过模板编辑工具,如Dreamwaver等,所见即所得的对页面显示源代码进行修改和维护,从而降低对代码修改人员的技术要求。
下面结合具体实施例对本发明进行说明:
实施例一:
本实施例中,需要预先由美工设计人员根据业务需求对页面进行设计,形成页面效果图,代码编制人员编制用于在指定平台显示页面的页面显示源代码,并将该页面显示源代码输入模板引擎;后续页面显示如下:
步骤1:模板引擎获取输入的页面显示源代码,即模板文件;
步骤2:模板引擎查找页面显示源代码中的标记,确定查找到的标记是否是标准标记;并将查找到的非标准标记按照预先设定的标记处理方法进行标记处理,以消除非标准标记;
步骤3:模板引擎在本地设备执行标记处理后得到的页面显示源代码,以进行页面显示。或者,将标记处理后得到的页面显示源代码发送给页面显示设备,页面显示设备执行该页面显示源代码,以进行页面显示。
实施例二:
本实施例中,需要预先由美工设计人员根据业务需求对页面进行设计,形成页面效果图,代码编制人员根据页面效果图采用HTML语言编制相应的页面显示源代码,向页面显示源代码中增加描述页面所需要的业务数据的信息,并将该页面显示源代码输入模板引擎;包含业务数据描述信息的页面显示源代码构成了图3中的展现层模板。对于高级人员而言,可以使用手工向页面显示源代码中增加业务数据信息,对于初级人员而言,可以使用可视化的工具增加业务数据信息,从而降低对技术人员的要求。后续页面显示如下:
步骤1:模板引擎获取输入的页面显示源代码,即模板文件;
步骤2:模板引擎查找页面显示源代码中的标记,确定查找到的标记是否是标准标记;并将查找到的非标准标记按照预先设定的标记处理方法进行标记处理,以消除非标准标记;
步骤3:模板引擎确定进行页面显示所使用的平台的类型;根据预先设定的平台类型与代码转换方法的对应关系,确定该平台类型对应的代码转换方法;按照该代码转换方法,将标记处理后得到的页面显示源代码转换为用于在所述平台显示页面的平台相关目标代码;
步骤4:模板引擎将平台相关目标代码发送给所述平台所在的页面显示设备,页面显示设备执行平台相关目标代码,以进行页面显示,得到图3中的展现层页面;或者,在本地设备执行平台相关目标代码,以进行页面显示,得到图3中的展现层页面。
在实施例二中,如图4A所示,若模板引擎为Aspx引擎,则Aspx引擎将页面显示源代码转换为.Net代码,若模板引擎为Java引擎,则为Java引擎将页面显示源代码转换为JSP代码,若模板引擎为PHP引擎,则PHP引擎将页面显示源代码转换为PHP代码,等等。如图4B所示,为转换原理示意图,模板引擎将采用平台独立模型(Platform-Independent Mode,PIM)的源代码转化为采用平台相关模型:(Platform-Specific Mode,PSM)的目标代码。
下面对本发明进行具体说明:
第一,本发明中,采用模型源语言编写的平台无关的源代码中包含描述页面所需要的业务数据的信息,根据业务数据的需要,模型源语言提供可扩展的语言定义。包括对业务数据的循环描述,条件描述,变量描述,及模板间的组成关系等,具体如下:
第二,本发明中,可以参考网页的W3C标准,将标准标记集合、非标准标记集合、标准标记与非标准标记的映射关系、以及针对非标准标记设置的标记处理流程信息设置在跨浏览器标记库中。
针对非标准标记设置的标记处理流程信息举例如下:
页面显示源代码中存在以下代码没,其中padding为非标准标记
width:120px;padding:5px;
针对非标准标记padding设置的标记处理方法如下:
将padding值加入到width值中,处理后得到的代码为:
width:125px。
定义该标记处理方法的代码可以如下:
第三,本发明中可以参考网页的W3C标准,识别并更正页面显示源代码中不符合浏览器代码规范的代码,具体包括以下A-D四种情况:
A、页面元素标签闭合出现了不配对的情况举例:
更正前代码如下:
更正后代码如下:
B、未对属性赋值和标签不闭合的情况举例:
更正前代码如下:
<input checked>
更正后代码如下:
<input checked=″checked″/>
C、定义表格(table)时未使用tbody元素的情况举例:
更正前代码如下:
更正后代码如下:
D、识别描述不合法的控件情况举例,具体识别代码如下:
第四,将页面显示源代码转换为.Net代码的流程举例:
步骤1:生成Aspx文件头:
<%Page language=″c#″Codebehind=″*.aspx.cs″AutoEventWireup=″false″EnableViewState=″false″Inherits=″*.main.cs″%>
步骤2:读入页面显示源代码(即平台无关的源代码),根据正则表达式数组获取需要进行转换处理的代码片段,对获取的各代码片段进行代码转换,生成平台相关目标代码,例如:
a、正则表达式:<%includePage([^\[\]\{\}\s]+)%>;
需要进行转换处理的源代码片段:<%includePage tplname%>;
处理后的平台相关目标代码片段:
foreach(Match m in ArrRegExps[n].Matches(strIn))
{
strOut=strIn.Replace(m.Groups[0].ToString(),″\r\n″+GetTemplate();
}
b、正则表达式:<%circle((\(([a-zA-Z]+)\))?)([^\[\]\{\}\s]+)([^\[\]\{\}\s]+)%><%\/loop%>;
需要进行转换处理的源代码片段:<%circle item list%>...<%/circle%>;
处理后的平台相关目标代码片段:
c、正则表达式:
<%if(?:\s*)(([^\s]+)((?:\s*)(\|\||\&\&)(?:\s*)([^\s]+))?)(?:\s*)%><%else(((?:\s*)if(?:\s*)(([^\s]+)((?:\s*)(\|\||\&\&)(?:\s*)([^\s]+))?))?)(?:\s*)%><%\/if%>;
需要进行转换处理的源代码片段:<%if...%>...<%else%>...<%/if%>;
处理后的平台相关目标代码的代码片段:
d、正则表达式:{([^\[\]∧{\}=′\s]+)};
需要进行转换处理的源代码片段:{vars};
处理后的平台相关目标代码的代码片段:Page.vars=User.Name。
上述代码实例中,读入的源代码用strIn表示,输出的目标代码用strOut表示。
e、平台无关的源代码和平台相关的目标代码示例:
参见图5,本发明实施例还提供一种页面显示设备,该设备包括:
代码获取单元50,用于获取输入的页面显示源代码;
标记查找单元51,用于查找所述页面显示源代码中的标记,确定查找到的标记是否是标准标记;所述标记是指表示页面元素属性的符号,所述标准标记是指设定的多种浏览器对其解析结果相同的标记;
标记处理单元52,用于在确定查找到的标记是非标准标记时,按照预先设定的标记处理方法进行标记处理,以消除所述非标准标记;
页面显示单元53,用于根据标记处理后得到的页面显示源代码进行页面显示或将该页面显示源代码发送给页面显示设备。
所述标记查找单元51用于:按照如下方法确定查找到的标记是否是标准标记:
确定预先设定的标准标记集合中是否包含所述查找到的标记,若是,则确定所述查找到的标记是标准标记;否则,确定所述查找到的标记是非标准标记;或者,
确定预先设定的非标准标记集合中是否包含所述查找到的标记,若是,则确定所述查找到的标记是非标准标记;否则,确定所述查找到的标记是标准标记。
所述标记处理单元52用于:
根据预先设定的标准标记与非标准标记的映射关系,确定查找到的非标准标记所对应的标准标记,将该非标准标记替换为该标准标记;或者,
读取针对查找到的非标准标记设置的标记处理流程信息,并执行该标记处理流程。
所述页面显示单元53包括:
平台类型确定单元,用于确定进行页面显示所使用的平台的类型;
转换方法确定单元,用于根据预先设定的平台类型与代码转换方法的对应关系,确定所述平台的类型对应的代码转换方法;
代码转换单元,用于按照所述代码转换方法,将标记处理后得到的页面显示源代码转换为用于在所述平台显示页面的平台相关目标代码;
显示单元,用于通过执行所述平台相关目标代码显示页面或将所述平台相关目标代码发送给所述平台所在的页面显示设备。
所述代码转换单元用于:
读取标记处理后得到的页面显示源代码,根据预先设定的正则表达式确定该页面显示源代码中需要进行代码转换处理的代码片段;
对于各代码片段,按照为该代码片段设置的代码转换方式信息,对该代码片段进行代码转换处理,得到平台相关目标代码。
所述页面显示单元53还包括:
规范性识别单元,用于在将标记处理后得到的页面显示源代码转换为用于在所述平台显示页面的平台相关目标代码之前,识别所述页面显示源代码中存在的不符合浏览器代码规范的代码;
对识别出的代码部分更正为符合浏览器代码规范的代码,或者,发出代码不符合浏览器代码规范的提示信息。
所述不符合浏览器代码规范的代码包括:
页面元素标签闭合不配对的代码、页面元素标签不闭合代码、未对属性赋值的代码、控件描述不合法、属性命名不合法的代码、节点关系不合法的代码中的一个或任意组合。
所述页面显示单元53还包括:
引擎优化处理单元,用于在将标记处理后得到的页面显示源代码转换为用于在所述平台显示页面的平台相关目标代码之前,对所述页面显示源代码进行搜索引擎优化处理,以提高搜索引擎搜索到该页面显示源代码显示的页面的可能性。
综上,本发明的有益效果包括:
本发明实施例提供的方案中,获取输入的页面显示源代码;查找所述页面显示源代码中的标记,确定查找到的标记是否是标准标记;在确定查找到的标记是非标准标记时,按照预先设定的标记处理方法进行标记处理,以消除所述非标准标记;根据标记处理后得到的页面显示源代码进行页面显示。
可见,本方案通过对页面显示源代码进行浏览器兼容性检查,即识别页面显示源代码中的非标准标记并对该非标准标记进行处理,以消除页面显示源代码中的非标准标记,进而使得页面显示源代码中仅包含标准标记或少包含一些非标准标记,由于标准标记是指设定的多种浏览器对其解析结果相同的标记,非标准标记是指设定的多种浏览器对其解析结果不同的标记,因此,通过消除页面显示源代码中的非标准标记,能够使得多种浏览器对同一标记的解析结果尽量一致,进而使得多种浏览器的页面显示效果也尽量一致,提高了页面显示在多个浏览器的兼容性。
本发明实施例提供的方案中,获取输入的页面显示源代码;确定进行页面显示所使用的平台的类型;根据预先设定的平台类型与代码转换方法的对应关系,确定所述平台的类型对应的代码转换方法;按照所述代码转换方法,将页面显示源代码所述转换为用于在所述平台显示页面的平台相关目标代码;通过执行所述平台相关目标代码进行页面显示。
可见,本方案通过将页面显示源代码进行跨平台转换,即在确定显示页面所使用的平台后,将页面显示源代码转换为该平台能够支持的代码,从而进行正确的页面显示。由于可以预先针对不同的平台分别设置代码转换方法,因此可以在多种平台正确显示页面,为跨平台的页面显示提供了支持。并且,采用本发明在不同的平台上显示同一页面时,不需要代码开发人员针对不同的平台分别编制页面显示源代码,提高了页面显示的灵活度,也降低了实现成本。
采用本发明,对开发过程而言,在业务不发生改变的情况下,可以轻松的构建出多种页面展现形式,以满足互联网的变化需求。对于页面的开发,由基于特定开发工具和平台的开发降低为基于HTML、Javascript、CSS的开发。对于用户而言,系统可以支持对页面风格和框架的改变以满足用户集成和个性化开发的需求。其通过对HTML中的数据进行标记,经页面模板引擎将平台无关的模板文件代码转换为平台相关的最终显示页面代码。模型源语言可以作为业务数据和展现的中间语言,降低了业务与数据间的耦合度,以达到降低页面的开发难度,网页模板的重用,易于维护的目的。同时,模板文件支持可视化工具的编辑和维护,降低了页面设计人员的技术要求,符合设计人员的需求,从而降低了开发成本,应用场景广泛。
采用本发明,可以根据预先设定的标准标记与非标准标记的映射关系,创建符合浏览器标准的页面显示源代码,该步骤由于技术门槛较低,不涉及具体的高级语言语法,并且是平台无关,可由美编或网页制作人员完成。
采用本发明,通过对模型源语言的定义和转换工件的实现,清晰的划分了展现信息及数据信息的界限,满足了展现信息的易于修改的业务需求和数据提供系统与网页展现信息的低耦合性要求。同时通过对跨浏览器网页标记库的维护,实现网页跨浏览器的支持。
采用本发明,目标网页支持跨浏览器的同时,有效降低数据与业务的耦合度,降低页面模板的开发技术门槛,有效的管理和重用模板,模板可跨系统使用。
综上,本发明有利于对数字内容的展现,以适应当前互联网的需求。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。