[发明专利]一种模板渲染的方法、装置及浏览器有效
| 申请号: | 201610671634.9 | 申请日: | 2016-08-15 |
| 公开(公告)号: | CN107766344B | 公开(公告)日: | 2021-07-30 |
| 发明(设计)人: | 刘威;尹利民;陈旭东;王建 | 申请(专利权)人: | 阿里巴巴集团控股有限公司 |
| 主分类号: | G06F16/958 | 分类号: | G06F16/958;G06F8/30 |
| 代理公司: | 北京博思佳知识产权代理有限公司 11415 | 代理人: | 林祥 |
| 地址: | 英属开曼群岛大开*** | 国省代码: | 暂无信息 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 模板 渲染 方法 装置 浏览器 | ||
本申请提供一种模板渲染的方法、装置及浏览器,所述方法包括:获取用户的网页浏览请求;确定所述网页浏览请求对应的模板;基于所述模板调用业务服务返回的数据进行模板渲染,生成对应的网页页面,其中,所述数据包括:模板渲染过程中直接从服务工厂中获取的业务服务的数据;向所述用户返回所述网页页面。本申请实施例中,通过对渲染引擎的扩展,建立了模板与业务服务之间的对应关系,模板渲染可以直接使用业务服务执行返回的数据,使控制器不需要为模板进行业务数据的组装,而是让业务层的服务数据直接填充到确定的模板中,这样不但大大减少了控制器的代码编写,而且提高了模板渲染操作的执行效率。
技术领域
本申请涉及网络技术领域,特别涉及一种模板渲染的方法、装置及浏览器。
背景技术
近年来,随着网站技术的发展,每天可能会有几十亿的页面访问量,而快速的向用户展示商品信息以及为不同的用户展示不同的商品信息已经成为各大网站竞争的主要手段。但是,由于海量商品信息的存在,且需要展示的信息的多样化。在模板渲染前,控制器(Controller)需要调用多个应用服务来组装模板渲染所需的所有模板数据,同时,还需要选择使用哪个模板来渲染页面,然后由渲染引擎将模板数据(Model)填充到模板中,得到最终的页面源码(html),最后,将页面源码返回给用户浏览器。
现有的模板渲染中,由于Controller需要调用多个业务服务来组装模板渲染所需的数据,增加了控制器的代码编写,降低了模板渲染操作的执行效率。
发明内容
有鉴于此,本申请提供一种模板渲染的方法、装置及浏览器,以解决现有技术中由于控制器需要调用多个业务服务来组装模板渲染所需的数据,增加了控制器的代码编写,而导致模板渲染操作的执行效率降低的技术问题。
具体地,本申请是通过如下技术方案实现的:
第一方面提供一种模板渲染的方法,包括:
获取用户的网页浏览请求;
确定所述网页浏览请求对应的模板;
基于所述模板调用业务服务返回的数据进行模板渲染,生成对应的网页页面,其中,所述数据包括:模板渲染过程中直接从服务工厂中获取的业务服务的数据;
向所述用户返回所述网页页面。
可选的,基于所述模板调用业务服务返回的数据进行模板渲染,生成对应的网页页面包括:
读取所述模板;
将读取的所述模板解析为抽象语法树;
遍历抽象语法树中的每个节点;
每遍历到一个节点时,利用所述节点的变量名在模板渲染上下文对象中查找对应的变量值;
如果查找到对应的变量值,则利用所述变量值去渲染所述节点;
如果没有查找到对应的变量值,则利用所述变量名从服务工厂中查找对应的业务服务;
如果查找到对应的业务服务,则执行所述业务服务,并把执行所述业务服务的数据作为变量值来渲染所述节点;
渲染所述抽象语法树中的每个节点后,生成网页页面。
可选的,所述抽象语法树中包括变量节点,所述变量节点用来表示所述节点在渲染过程中会被替换为对应的变量值。
可选的,还包括:
在模板渲染前,利用依赖注入容器收集所有的业务服务;
建立所述业务服务与服务名之间的对应关系,以便于根据所述服务名查找到对应的业务服务。
可选的,所述利用依赖注入容器收集所有的业务服务,包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于阿里巴巴集团控股有限公司,未经阿里巴巴集团控股有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201610671634.9/2.html,转载请声明来源钻瓜专利网。





