日期:2014-05-16  浏览次数:20318 次

无独有偶,另一个采用原生js语法的js template工具EJS

EJS开源主页:

http://code.google.com/p/embeddedjavascript/

?

今天刚刚看到EJS ,嵌入javascript模板引擎,顺便介绍一下

EJS 这个项目2007年就开始了。

粗略的看了一下,大概有两方面和jCT采取的策略是一样的:

  1. 采用原生javascript语法,不再对js语句进行包装
  2. 也把语句标记和取值表达式标记分开定义

还有几点好像也一样(由于是粗看,不一定准确)

  1. 也分准备模板对象数据和实例编译(他叫rander渲染)
  2. ejs也可以自定义语法标记


不同的地方就多了,最主要的就是

  1. 符号选择上jCT首选注释<!---语句-->和+-取值-+,ejs首选是<%语句%>和<%=取值%>
  2. 在输出上jCT采用数组做cache,ejs直接用字符串相加
  3. ejs直接提供了简单的DOM渲染代码,update(通过Element ID),甚至ajax数据的获取。而jCT把这些都交给了用户了,并且jCT永远也不会这样做,因为jCT认为这些有太多的框架代码可以,jCT不应该重复这个劳动
  4. jCT支持的子模板,扩展,自动运行,递归调用这些特性,ejs都没有
  5. ejs也是用正则表达式处理模板的, jCT直接用字符串函数,正则要慢1倍以上,貌似只有jCT这样干

对 javascript template 感兴趣的朋友不妨也看看ejs,ejs的代码还是很容易看懂的,至少比JST要清晰多了