模板引擎 Lite

简介:

Lite 缩写自List Template,是一个由简单的控制指令集和一个表达式解析引擎组成的简单模板引擎。 模板语言所解析的中间格式,由数组、字符串、和整数三种数据类型组成。数组就是这里唯一的复合类型,于是,我采用List Template来命名这个模板引擎。List 和Template各取两个首字母,组成Lite这个单词。

用户不能直接编写控制指令,如同java程序员不能直接编写字节码一样,Lite需要一种真正的源代码格式。理论上,通过这些控制指令和自定义表达式函数,我们可以支持任何模板语法翻译为Lite能解释的中间代码。

如CLR需要C#,C++.net,java byte code需要Java语法; Lite提供一种XML源代码语法,作为Lite的默认源代码格式。

Lite的运行效率,是非常出众的,高于Velocity和FreeMarker一半以上。 但是对于一些表达式的计算,因为JSEL脚本和JavaScript规则的兼容性要求,以及弱类型自动转换的特征,性能不及强类型的velocity。介 于Velocity和FreeMarker之间。

js版本运行时比jst快大约两倍,如果算 上编译时间(lite不在运行时编译),不在一个数量级上,没有比较。

python版本比 django模板快四倍左右!

php版本的性能较差,估计主要事php函数调用开销的问题, 相比smarty这个编译成最终php的模板实现来说,在asciitable打印测试中,单进程内一次运行要慢smarty3.5倍(通常web页面的 渲染模式),如果单进程重复运行1000次(现实环境中不太可能发生),可能是因为php文件的解析缓存,要慢smarty9倍(查看详细数据),而且如果php使用编译缓存加速,这个差距还会进一步加大。以后考虑将采用类似lite4js那 样编译成最终代码的方式,或者直接编写php扩展。

几个Java模板引擎的测试结果比较见:http://code.google.com/p/templatetest/wiki/Velocity_CommonTemplate_XMLTemplate_Compare

下载:http://code.google.com/p/lite/downloads/list

本文转自博客园知识天地的博客,原文链接:模板引擎 Lite,如需转载请自行联系原博主。

相关文章
|
4月前
|
PHP 开发者
深入探索Laravel框架中的Blade模板引擎
Blade模板引擎通过提供简洁的语法、强大的模板继承和灵活的组件系统,大大提升了Laravel开发的效率和代码的可维护性。掌握Blade的各种特性和最佳实践,可以帮助开发者构建高效、可维护和美观的Web应用视图层。通过不断练习和实践,进一步深化对Blade模板引擎的理解和应用,可以大大提升Laravel开发项目的质量和效率。
117 26
|
JavaScript 前端开发 Java
MooTools、Backbone、Sammy、Cappuccino、Knockout、JavaScript MVC、Google Web Toolkit、Google Closure、Ember、Batman 以及 Ext JS。
MooTools、Backbone、Sammy、Cappuccino、Knockout、JavaScript MVC、Google Web Toolkit、Google Closure、Ember、Batman 和 Ext JS 都是 JavaScript 框架,用于开发 Web 应用程序。它们分别提供了不同的功能和特性,以帮助开发者更高效地构建和维护 Web 应用程序。
83 2
|
Java 程序员 Apache
模板引擎——FreeMarker初体验
FreeMarker 是一款模板引擎:一种基于模板的、用来生成输出文本(任何来自于 HTML格式的文本用来自动生成源代码)的通用工具。
symfony框架Twig模板语言的使用
symfony框架Twig模板语言的使用
199 0
symfony框架Twig模板语言的使用
|
JavaScript 前端开发 中间件
Koa中 引入使用 EJS 模板引擎
Koa中 引入使用 EJS 模板引擎
263 0
|
开发框架 自然语言处理 安全
第21天:Web开发 Jinja2模板引擎
第21天:Web开发 Jinja2模板引擎
279 0
第21天:Web开发 Jinja2模板引擎
|
数据处理 开发者 Python
Jinja2 模板引擎简介 | 学习笔记
快速学习Jinja2模板引擎简介
281 0
|
移动开发 JavaScript 前端开发
Weex 框架中 JS Framework 的结构
Weex 具有移动端跨平台的特性,JS Framework 是其中比较关键的一层。首先来看一下 JS Framework 在 Weex 中的位置: ![Weex 整体结构](http://gtms02.alicdn.com/tps/i2/TB1ootBMpXXXXXrXXXXwi60UVXX-596-397.png) 从图中可以看出 Weex 整体的工作流程。首先开发者可以声明式的定义组件
10758 0
|
Web App开发 移动开发 JavaScript
来 认识一下Weex 的 JS Framework
在 Weex 框架中的位置 Weex 是一个既支持多个前端框架又能跨平台渲染的框架,JS Framework 介于前端框架和原生渲染引擎之间,处于承上启下的位置,也是跨框架跨平台的关键。无论你使用的是 Vue 还是 Rax,无论是渲染在 Android 还是 iOS,JS Framework 的代码都会运行到(如果是在浏览器和 WebView 里运行,则不依赖 JS Framework)。
3534 0