[发明专利]一种可伸缩的生成文本的方法有效
申请号: | 201510267434.2 | 申请日: | 2015-05-22 |
公开(公告)号: | CN104881320B | 公开(公告)日: | 2018-11-27 |
发明(设计)人: | 刘锟洋 | 申请(专利权)人: | 北京京东尚科信息技术有限公司;北京京东世纪贸易有限公司 |
主分类号: | G06F9/46 | 分类号: | G06F9/46 |
代理公司: | 中原信达知识产权代理有限责任公司 11219 | 代理人: | 姜劲;陆锦华 |
地址: | 100080 北京市海淀区杏石口路6*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 伸缩 生成 文本 方法 | ||
本发明提供一种可伸缩的生成文本的方法,能够更快的渲染文本文件,更高效的利用服务器的CPU资源。该方法包括:将整个模板文件分解成多个子模板文件;生成渲染任务列表,所述渲染任务列表中包含多个渲染任务,所述多个渲染任务用于关联该多个渲染任务对应的所述多个子模板文件,并且实现渲染前准备数据的逻辑;将所述多个渲染任务进行多线程渲染;以及将所述多个渲染任务的渲染结果拼接以生成文本。采用本发明的技术方案,降低了模板文件的开发维护成本,数据准备更为高效,服务器的CPU资源利用更为合理。
技术领域
本发明涉及计算机网络技术领域,特别地涉及一种可伸缩的生成文本的方法。
背景技术
文本文件是一类重要的计算机文件,由于结构简单,文本文件被广泛用于记录信息。为了提升开发效率,使代码可以重用,在生成文本时引入了模板引擎(templateengine),使用模板引擎后就可以达到逻辑分离的功能,使程序应用逻辑和页面显示逻辑分开,能让程序开发者专注于资料的控制或是功能的达成;而视觉设计师则可专注于页面排版,让页面看起来更具有专业感。
以用Java语言生成一种常见的文本——HTML页面为例。在用Java语言进行HTML页面生成时,通常情况下,开发人员不会直接编写整个HTML页面,而是按照一定的逻辑,将一个HTML页面分块成很多个HTML模板,再用基于Java的模板引擎最终生成整个HTML页面。
通常使用的基于Java的模板引擎有Velocity,FreeMarker等。例如Velocity,它允许任何人仅仅使用简单的模板语言(template language)来引用由Java代码定义的对象,并且将Java对象和模板本身以渲染的方式,最终生成一个HTML片段。当Velocity应用于Web页面开发时,页面设计人员可以只关注页面的显示效果,而由Java程序开发人员关注业务逻辑编码。Velocity将Java代码从web页面中分离出来,这样为web站点的长期维护也提供了便利。
当需要用Velocity渲染一个HTML页面时,现有技术通常包含以下几个步骤:
1.将整个HTML页面中的变量按照Velocity语法替换成Java对象的引用以生成Velocity模板文件;
2.通过Java后台逻辑单线程依次组装Velocity模板文件所需要的数据;
3.将Velocity模板文件和Java后台逻辑组装的数据作为Velocity中渲染方法的输入,执行Velocity中的渲染(render)方法,最终得到渲染方法的输出生成完整的HTML页面。
由此可见,现有基于Java的生成文本的方法有以下几个缺点:
1.如果模板文件内容很多,会导致整个模板文件很长,增加开发人员的开发维护成本。
2.Java后台准备数据的过程为单线程,如果模板文件需要的数据很多,Java后台组装数据的逻辑需要很长时间才能将所有数据准备好,之后再调用渲染方法,因此页面生成时间很长。
3.如果服务器CPU利用率较低时,渲染文本的过程还是必须遵循依次准备数据再渲染的过程,无法更高效的利用服务器的CPU资源。
发明内容
有鉴于此,本发明提供一种可伸缩的生成文本的方法,具体方案为:将一个大模板文件分解成多个子模板文件,并编写渲染任务关联对应的模板文件和数据,然后将渲染任务发给线程池进行多线程渲染,全部渲染任务结束后将渲染结果进行拼接以生成完整的文本。该方法能够更快的渲染文本文件,可以在服务器CPU利用率较低时,尽可能多的利用服务器的CPU资源,加快文本的渲染,并且在服务器利用率达到一定程度时自动保护服务器CPU资源,延长服务器在接收到大量渲染请求下的工作时间。
为实现上述目的,本发明提供了一种可伸缩的生成文本的方法。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京京东尚科信息技术有限公司;北京京东世纪贸易有限公司,未经北京京东尚科信息技术有限公司;北京京东世纪贸易有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510267434.2/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种多线程下的内存管理方法
- 下一篇:用于DSP芯片程序升级的烧写方法和装置