scriptmark模板语言 




作者:陈原   mail:cayu@gzec.com.cn   QQ:39793751    home: http://www.jspx.net

XML解析
1.简介
         最初是使用的Freemarker模板做为本构架引擎。但因为扩展不方便,不能够达到我要求的整合程度所以就放弃了Freemarker。这之前也考虑了Common Template Language(CTL)模板,虽然它能够有语法外套,但可能是使用习惯了Freemarker。所以还是偏重Freemarker的标识方式。velocity这些模板的语法感觉更是丑。
但 Freemarker的标签并不标准。所以就产生了scriptmark这个模板引擎。scriptmark的标签和Freemarker差不多。 但是是标准的xml.脚本引擎是使用的javascript引擎,可以在模板中方便的使用javascript语法和函数。因为能够使用javascript语法和函数。 所以Freemarker的BuildIn函数处理部分就没有了,统一使用javascript的库实现。 比如求结对值 ${-21321.abs()} 这样就可以了. 日期格式化 ${date.string('yyyy-MM-dd')} 这样用法优美很多。
2.使用例子 ---(打不开的多等一下,继续运行)
1.javascript的能力够强了吧,javascript能做的它都能做。因为就是使用的javascript引擎。
2.宏一样的有。使用更加方便。
3.Freemaker 可以做很多不同命名空间的库。但做为模板语言来说,没必要来做库,所以弱化了空间的概念。但在实际使用的时候TXWeb使用空间概念的。
相当于java来完成了这部分工作。


性能说明

本人对很多模板做了,多线程并发测试,Freemaker 表现相当优秀,而网上一些朋友在单线程下比较,说得Freemaker 一文不值,

我在多线程,交叉模板方式下测试Freemaker 性能相当好, scriptMaker 在高压的时候约有优势,低压要弱一些,总体差不多。

Freemaker 非常稳定,快,但有缓存结果的嫌疑, 本测试没有使用io ,只是解析运行速度
CommonTemplate:速度和稳定行的欠佳,多线程下容易错误
velocity: 运行很快, 多线程下容易错误,最快的是他,最容易出错的也是它
ScriptMark:稳定 速度在 Freemaker,velocity 之后,功能最丰富
smarty4j:单线程最快,多线程最慢的一个,稳定。