[转载]Doodle.CMS模板引擎之代码下载 – imfunny – 博客园.
上篇介绍了Doodle系统中的模版引擎,这篇就来讲下内置的开源的模版引擎。
Doodle的模版引擎原型是Ader Template Engine.原地址参考(http://www.adersoftware.com/index.cfm?page=templateEngine2)。作者已经在04年停止更新,但是因为代码实在写的太Good了,所以就拿来从新接着维护。
废话不说先放代码。代码托管在了google,可惜被强了。开源协议Apache。等弄好了就把代码托管上去。转载使用也请注明出处。
代码下载请点此。里面有代码的具体例子以及使用说明。
Apache ab下载(用来模拟并发操作的场景)
具体的测试数据在这里。也没过多的和NVelocity比,但是速度不会比那个差。页面中两条SQL语句,数据库4W条数据,在ab -n 1024的时候依然保持着很高的效率,内存在30M之内,在0.9秒之内响应。对于真的存在较大压力的时候比原始的aspx要更快对服务器资源的要消耗的 更少。所以就别去怀疑性能了。实在不想多解释这块。担心性能就是杞人忧天了点。
放上两张图 以及测试结果。
内存消耗 44为虚拟内存。27.168为为实际的内存。这点要比NVelocity和原生的aspx要好。
敢兴趣的大家测试试用下。
已经满足了下列几项
1:模版必须很快,同时内存控制的必须很好。内存必须在即使ab -m 1024的情况下内存在60M之内。(也就是同时有1024个人访问内存控制在单方法控制在60M之内。并且响应1秒之内)
2: 支持完整的逻辑表达式,for foreach if elseif else break while do case ++ 等语句。
3: 必须彻底的开发者和使用者之间的关系。开发者开发完成了之后,使用者通过模版语句来控制显示什么的问题。比如直接的数据库使用的支持。多数据库的支持。
5:语句要简单易懂,并且有很好的扩展性和逻辑性。
6:直接的被使用,减少使用的侵入性。
7:不和一些存在的框架冲突,特别是JQuery。
8: 当然就是生成的问题,生成页面的时候要支持web的生成和服务器的生成。通过服务器的生成来解决好数据的分布问题和多服务器的场景这些的。
9:同时支持动态和生成静态页面的浏览。
第4条为启用缓存,还没去制作,之后会增加的。
大家用的愉快。