CN102455903A - 一种用户应用界面的生成方法 - Google Patents
一种用户应用界面的生成方法 Download PDFInfo
- Publication number
- CN102455903A CN102455903A CN2010105254171A CN201010525417A CN102455903A CN 102455903 A CN102455903 A CN 102455903A CN 2010105254171 A CN2010105254171 A CN 2010105254171A CN 201010525417 A CN201010525417 A CN 201010525417A CN 102455903 A CN102455903 A CN 102455903A
- Authority
- CN
- China
- Prior art keywords
- template
- bus
- specific
- file
- pond
- 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
Links
Images
Landscapes
- Stored Programmes (AREA)
Abstract
本发明涉及一种用户应用界面的生成方法,该方法包括:若模板对象池判断不存在特定模板文件的数据对象,模板对象池向模板文件池发送获取特定模板文件的请求;模板文件池向模板总线返回特定模板文件;模板解析模块解析并编译特定模板文件,以生成二进制JAVA模板对象,并向模板总线返回JAVA模板对象;模板总线将JAVA模板对象放入JVM中的模板对象池中,以生成特定模板文件的数据对象;模板总线将编译完成的模板文件的数据对象与业务流程中产生的数据对象组合成HTML数据,并将所述HTML数据返回给客户端。实施本发明的技术方案,可大大减小系统的负载,提高系统的运行效率。
Description
技术领域
本发明涉及软件开发技术,更具体地说,涉及一种用户应用界面的生成方法。
背景技术
软件开发技术已经发展了几十年,随着软件应用越来越广泛,功能越来越复杂,规模越来越庞大,逐个界面定制开发的传统开发方式已经不能满足需求,主要存在以下问题:
1.软件规模越来越庞大,导致开发工作量成倍增长,不可控制;
2.软件界面风格很难做到统一;
3.如果需要统一改变软件界面,需要每个界面重新修改,代价很大。
然而,模板技术能够很好的实现美工和程序的分离,同时方便程序员和美工人员的分工合作,现在业界已经有多种模板技术,例如smarty、freemaker、velocity等。其中,smarty是一个使用PHP写出来的模板引擎,它分离了逻辑代码和外在的内容,提供了一种易于管理和使用的方法,用来将原本与HTML代码混杂在一起PHP代码逻辑分离。简单的讲,目的就是要使PHP程序员同前端人员分离,使程序员改变程序的逻辑内容不会影响到前端人员的页面设计,前端人员重新修改页面不会影响到程序的程序逻辑,这在多人合作的项目中显的尤为重要。
目前的模板引擎的模板解析都是解释执行的,即在程序运行时,读取模板文件,并解析模板中的内容,最后输出最终结果。如图1所示,首先用户通过客户端浏览器发送客户请求业务,服务端的业务处理模块处理业务数据,并将处理后的业务数据发送至模板总线,模板总线向模板文件池发送获取特定模板文件的请求,其中,模板文件池存储有多个模板文件,特定模板文件是与客户发送的业务请求相关的模板文件,然后模板文件池向模板总线返回特定模板文件,模板总线再将特定模板文件交给模板解析模块进行解析,模板解析模块完成解析后,向模板总线返回解析完成后的特定模板文件的数据对象,模板总线最后将特定模板文件的数据对象组合成最终的HTML数据,并通过客户端浏览器返回到客户端。然而,模板解析模块在解析模板文件时要消耗系统很多时间,导致运行效率非常低,如果大规模地动态执行运用模板语言,会造成系统性能的严重下降,因此该用户应用界面的生成方法更多地应用在数据内容静态化的场景以及对性能要求不高的应用场景。
发明内容
本发明要解决的技术问题在于,针对现有技术的上述在大规模地动态执行模板语言时运行效率低的缺陷,提供一种用户应用界面的生成方法,在大规模地动态执行模板语言时运行效率高。
本发明解决其技术问题所采用的技术方案是:构造一种用户应用界面的生成方法,包括:
A.业务处理模块接收客户请求业务,处理业务数据,并将处理后的业务数据发送至模板总线;
B.模板总线接收处理后的业务数据,并向模板对象池发送获取特定模板文件的数据对象的请求,所述特定模板文件与所述业务数据相关;
C.模板对象池判断是否存在有特定模板文件的数据对象,若是,则执行步骤D;若否,则执行步骤E;
D.模板对象池向模板总线返回特定模板文件的数据对象,然后执行步骤J;
E.模板对象池向模板文件池发送获取特定模板文件的请求;
F.模板文件池向模板总线返回特定模板文件;
G.模板总线向模板解析模块发送特定模板文件;
H.模板解析模块解析并编译特定模板文件,以生成JAVA模板对象,并向模板总线返回JAVA模板对象;
I.模板总线将编译完成的JAVA模板对象放入JVM中的模板对象池中,以便给后续流程直接调用;
J.模板总线将编译完成的模板文件的数据对象与业务流程中产生的数据对象组合成HTML数据,并将所述HTML数据返回给客户端。
在本发明所述的用户应用界面的生成方法中,所述步骤F包括:
F1.模板文件池判断是否存在有特定模板文件,若是,则执行步骤F2;若否,则执行步骤F3;
F2.向模板总线返回特定模板文件,然后执行步骤G;
F3.向模板总线返回相应的错误代码,模板总线再向客户端返回所述错误代码。
在本发明所述的用户应用界面的生成方法中,在所述步骤I中,模板总线以异步的方法将JAVA模板对象放入JVM中的模板对象池中。
在本发明所述的用户应用界面的生成方法中,在所述步骤I中,模板总线以缓冲和同步的方法将JAVA模板对象放入JVM中的模板对象池中。
实施本发明的技术方案,若在第一次读取某一模板文件时,对其进行解析和编译,以生成对应的JAVA模板对象,然后将该编译完成的JAVA模板对象放入JVM中的模板对象池中;若在非第一次读取该模板文件时,只需从模板对象池中调出相应的模板对象即可,运行的即是JAVA二进制流对象,而不需要对其重新进行解析与编译,因此可大大减小系统的负载,提高系统的运行效率。
附图说明
下面将结合附图及实施例对本发明作进一步说明,附图中:
图1是现有技术用户应用界面的生成方法的流程图;
图2A是本发明用户应用界面的生成方法实施例一的部分流程图;
图2B是本发明用户应用界面的生成方法实施例一的部分流程图。
具体实施方式
对于一些需要实时更新的用户应用界面,如股票显示的用户应用界面或者一些带有M_Market业务的用户应用界面,应当说明的是,该有M_Market业务是指服务运营商在3G时代搭建的增值业务平台,这些用户应用界面的所有的请求都是动态的,无法像现有的各大门户网站一样将数据内容静态化,为提高系统运行的效率,需要构建一种可编译执行的动态模板语言。
在本发明的用户应用界面的生成方法实施例一中,结合图2A和图2B,应当说明的是,图2A是第一次读取某模板文件时生成户应用界面的方法的流程图,图2B是非第一次读取某模板文件时生成户应用界面的方法的流程图,图2A和图2B中的步骤S100-S103及步骤S110-S111都是相同的,区别只是在第一次读取某模板文件时,需要对上述的模板文件进行解析和编译,而在解析和编译后就存储在了模板对象池中,在下次需要重新读取该模板文件时,只需从模板对象池中调出相应的模板文件的数据对象即可,因此,提高了系统的运行效率,下面具体说明本发明的用户应用界面的生成方法,该方法包括:
S100.业务处理模块接收客户请求业务,该客户请求业务可来自客户端浏览器;
S101.业务处理模块处理业务数据;
S102.业务处理模块将处理后的业务数据发送至模板总线;
S 103.模板总线接收处理后的业务数据,并向模板对象池发送获取特定模板文件的数据对象的请求,所述特定模板文件与所述业务数据相关;
S104.若模板对象池判断不存在特定模板文件的数据对象,则向模板文件池发送获取特定模板文件的请求,模板对象池在内存中,然后执行步骤S105;应当说明的是,模板文件如果是非第一次读取,即该页面为非第一次运行、没有进行了改动或变更,则与该页面对应的模板文件已经进行了编译,该模板文件所对应的数据对象已经存储在了模板对象池中(下面将会详细说明);如果该页面的模板文件是第一次读取,即该页面为第一次运行、已经进行了改动或变更,则模板对象池中将不会存在该模板文件的数据对象;
S112.若模板对象池判断存在有特定模板文件的数据对象,则向模板总线返回特定模板文件的数据对象,然后执行步骤S110;
S105.模板文件池向模板总线返回特定模板文件;
S106.模板总线向模板解析模块发送特定模板文件;
S107.模板解析模块解析并编译特定模板文件,以生成JAVA模板对象;
S108.模板解析模块向模板总线返回编译完成的JAVA模板对象;
S109.模板总线将编译完成的JAVA模板对象放入JVM中的模板对象池中,以生成特定模板文件的数据对象,在该步骤中,模板总线可以异步的方法将编译完成的JAVA模板对象放入JVM中的模板对象池中,也可以缓冲和同步的方法将JAVA模板对象放入JVM中的模板对象池中;
S110.模板总线将编译完成的模板文件的数据对象与业务流程中产生的数据对象组合成HTML数据,并将所述HTML数据返回给客户端。
另外,SMARTY原生是为PHP服务的,对于JAVA对象中的值获取本身的语法SMARTY本身并不支持,这里我们专门原创一种语法,用来专门获取JAVA中对象的值。
{$object.count}
其中$object即为java中对应的数据对象名称,count为该对象中的一个参数。
优选地,在上述实施例中的步骤S104和步骤S105之间,还包括:
模板文件池判断是否存在有特定模板文件,若是,则向模板总线返回特定模板文件,然后继续执行步骤S105;若否,则向模板总线返回相应的错误代码,模板总线再向客户端返回所述错误代码,以告知客户所请求的业务的模板文件不存在。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的权利要求范围之内。
Claims (4)
1.一种用户应用界面的生成方法,其特征在于,包括:
A.业务处理模块接收客户请求业务,处理业务数据,并将处理后的业务数据发送至模板总线;
B.模板总线接收处理后的业务数据,并向模板对象池发送获取特定模板文件的数据对象的请求,所述特定模板文件与所述业务数据相关;
C.模板对象池判断是否存在有特定模板文件的数据对象,若是,则执行步骤D;若否,则执行步骤E;
D.模板对象池向模板总线返回特定模板文件的数据对象,然后执行步骤J;
E.模板对象池向模板文件池发送获取特定模板文件的请求;
F.模板文件池向模板总线返回特定模板文件;
G.模板总线向模板解析模块发送特定模板文件;
H.模板解析模块解析并编译特定模板文件,以生成JAVA模板对象,并向模板总线返回JAVA模板对象;
I.模板总线将JAVA模板对象放入JVM中的模板对象池中,以生成特定模板文件的数据对象;
J.模板总线将编译完成的模板文件的数据对象与业务流程中产生的数据对象组合成HTML数据,并将所述HTML数据返回给客户端。
2.根据权利要求1所述的用户应用界面的生成方法,其特征在于,所述步骤F包括:
F1.模板文件池判断是否存在有特定模板文件,若是,则执行步骤F2;若否,则执行步骤F3;
F2.向模板总线返回特定模板文件,然后执行步骤G;
F3.向模板总线返回相应的错误代码,模板总线再向客户端返回所述错误代码。
3.根据权利要求1或2所述的用户应用界面的生成方法,其特征在于,在所述步骤I中,模板总线以异步的方法将JAVA模板对象放入JVM中的模板对象池中。
4.根据权利要求1或2所述的用户应用界面的生成方法,其特征在于,在所述步骤I中,模板总线以缓冲和同步的方法将JAVA模板对象放入JVM中的模板对象池中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010525417.1A CN102455903B (zh) | 2010-10-29 | 2010-10-29 | 一种用户应用界面的生成方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010525417.1A CN102455903B (zh) | 2010-10-29 | 2010-10-29 | 一种用户应用界面的生成方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102455903A true CN102455903A (zh) | 2012-05-16 |
CN102455903B CN102455903B (zh) | 2014-12-10 |
Family
ID=46039122
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201010525417.1A Expired - Fee Related CN102455903B (zh) | 2010-10-29 | 2010-10-29 | 一种用户应用界面的生成方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102455903B (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103617064A (zh) * | 2013-12-09 | 2014-03-05 | 五八同城信息技术有限公司 | 一种改进的移动客户端产品更新的方法 |
CN105138448A (zh) * | 2014-06-05 | 2015-12-09 | 北京畅游天下网络技术有限公司 | 一种在前端测试页面的方法和装置 |
CN105335341A (zh) * | 2015-09-30 | 2016-02-17 | 北京金山安全软件有限公司 | 一种通过网页远程处理Excel文件的方法及装置 |
CN106528129A (zh) * | 2016-10-27 | 2017-03-22 | 南京南瑞继保电气有限公司 | 一种Web应用界面生成系统及方法 |
CN106569800A (zh) * | 2016-10-17 | 2017-04-19 | 北京小米移动软件有限公司 | 前端界面生成方法及装置 |
CN107608672A (zh) * | 2017-08-29 | 2018-01-19 | 武汉斗鱼网络科技有限公司 | 一种ui模块管理器、ui模块管理方法和系统 |
CN110083411A (zh) * | 2013-06-08 | 2019-08-02 | 苹果公司 | 用于从模板生成用户界面的设备和方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1852302A (zh) * | 2005-09-20 | 2006-10-25 | 华为技术有限公司 | 一种在下一代网络中实现语音交互功能的方法 |
CN101021916A (zh) * | 2007-03-09 | 2007-08-22 | 中国移动通信集团福建有限公司 | 业务流程分析方法 |
CN101257538A (zh) * | 2008-03-25 | 2008-09-03 | 华为技术有限公司 | 一种在浏览器中处理请求的方法、装置 |
-
2010
- 2010-10-29 CN CN201010525417.1A patent/CN102455903B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1852302A (zh) * | 2005-09-20 | 2006-10-25 | 华为技术有限公司 | 一种在下一代网络中实现语音交互功能的方法 |
CN101021916A (zh) * | 2007-03-09 | 2007-08-22 | 中国移动通信集团福建有限公司 | 业务流程分析方法 |
CN101257538A (zh) * | 2008-03-25 | 2008-09-03 | 华为技术有限公司 | 一种在浏览器中处理请求的方法、装置 |
Non-Patent Citations (1)
Title |
---|
ZHANGJUNHD: "一个简单的对象池设计", 《HTTP://ZHANGJUNHD.BLOG.51CTO.COM/113473/66059》 * |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110083411A (zh) * | 2013-06-08 | 2019-08-02 | 苹果公司 | 用于从模板生成用户界面的设备和方法 |
CN110083411B (zh) * | 2013-06-08 | 2022-02-01 | 苹果公司 | 用于从模板生成用户界面的设备和方法 |
CN103617064A (zh) * | 2013-12-09 | 2014-03-05 | 五八同城信息技术有限公司 | 一种改进的移动客户端产品更新的方法 |
CN105138448A (zh) * | 2014-06-05 | 2015-12-09 | 北京畅游天下网络技术有限公司 | 一种在前端测试页面的方法和装置 |
CN105138448B (zh) * | 2014-06-05 | 2018-06-05 | 北京畅游天下网络技术有限公司 | 一种在前端测试页面的方法和装置 |
CN105335341A (zh) * | 2015-09-30 | 2016-02-17 | 北京金山安全软件有限公司 | 一种通过网页远程处理Excel文件的方法及装置 |
CN106569800A (zh) * | 2016-10-17 | 2017-04-19 | 北京小米移动软件有限公司 | 前端界面生成方法及装置 |
CN106528129A (zh) * | 2016-10-27 | 2017-03-22 | 南京南瑞继保电气有限公司 | 一种Web应用界面生成系统及方法 |
CN106528129B (zh) * | 2016-10-27 | 2019-06-21 | 南京南瑞继保电气有限公司 | 一种Web应用界面生成系统及方法 |
CN107608672A (zh) * | 2017-08-29 | 2018-01-19 | 武汉斗鱼网络科技有限公司 | 一种ui模块管理器、ui模块管理方法和系统 |
CN107608672B (zh) * | 2017-08-29 | 2020-08-04 | 武汉斗鱼网络科技有限公司 | 一种ui模块管理器、ui模块管理方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN102455903B (zh) | 2014-12-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102455903A (zh) | 一种用户应用界面的生成方法 | |
Nanda et al. | Decentralizing execution of composite web services | |
CN101322096B (zh) | 元数据驱动的用户界面 | |
CN101763447B (zh) | 三维造型软件与有限元分析软件之间数据自动转换的方法 | |
US20070028208A1 (en) | Runtime generative programming method and system | |
CN103809975B (zh) | 智能云表单的实现方法 | |
CN102508669A (zh) | 一种程序代码自动生成方法 | |
CN110764752B (zh) | 实现Restful服务图形化服务编排的系统及其方法 | |
CN102043622A (zh) | 一种电子控制器基础软件通用配置器 | |
CN101604241A (zh) | 一种嵌入式系统的代码生成方法 | |
CN104965689A (zh) | 一种cpu/gpu的混合并行计算方法及装置 | |
CN101957758A (zh) | 面向服务的架构应用系统中实现Web Service快速发布的方法 | |
CN101894039A (zh) | 一种嵌入式设备驱动程序辅助生成方法及系统 | |
CN100511140C (zh) | 构件化软件系统实现脚本语言调用多输出参数接口的方法 | |
JP2005534114A (ja) | ソース間分割コンパイル | |
CN114911482A (zh) | 一种工业场景中的低代码应用生成系统及方法 | |
CN111245907A (zh) | 一种基于规则匹配的事件处理方法及系统 | |
CN103473034A (zh) | 一种动态发布Web 服务的方法和装置 | |
CN101561884B (zh) | 一种可变数据印刷过程中的脚本实现方法及装置 | |
CN115906261A (zh) | 一种基于数字孪生的智慧城市组件化构建方法及系统 | |
CN102999323B (zh) | 一种生成目标代码的方法、数据处理的方法及装置 | |
CN112527320B (zh) | 一种基于浏览器部署应用系统的方法、装置及存储介质 | |
Thorelli | The EDA multiprocessing model | |
CN103019801B (zh) | 一种应用于高速数字io波形引擎的编译器 | |
CN112527385A (zh) | 数据加工方法、装置、工作节点及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20141210 Termination date: 20201029 |
|
CF01 | Termination of patent right due to non-payment of annual fee |