标点符(钱魏 Way)

Javascript模板引擎分享

模板引擎的主要功能就是把变化的数据融入到不变的模板中,并生成最终结果。目前,前端的主要数据格式无非是XML和JSON。如何将这些数据更加方便的呈现呢?

最近看了很多的PHP模板引擎,今天看到了一个非常棒的Javascript模板引擎,用以更方便的呈现前台数据。它的一个超级简单的、快速的,高速缓存的,非常容易使用的模板引擎。

下面就来看下这个模板引擎是如何工作的。

Currying 的意思为将原来的函数只可带一个参数列表以多个参数列表(注意不是多个参数)实现,如:def foo(x)(y)(z){}。

上面的只是具体实现的JS库,那到底怎么使用呢?

或是这样

上面的使用代码中出现了一个特别的script内容类型text/html,这样的类型浏览器就不要去执行其中的内容,用户也就看不到其中的内容。这样就可以非常简单的把你想要的内容模板嵌入到你的页面中。这是一种快速的曲线救国的策略。

讲了这么多,那么怎么把数据给模板引擎呢,这还需使用Javascript来实现:

同样的你可以预先编译好需要呈现的代码供后面的使用,如下面的循环:

以上就是全部代码,整个逻辑非常的清晰,就是把模板语言“编译”为Javascript的原生语法。这个引擎的优点在于:

  1. 可以使用任何Javascript支持的语法。
  2. Parse模板的过程在闭包内执行,不会产生全局变量。
  3. 对“编译”后的模板进行了缓存,下次可以跳过“编译”的过程直接使用。

最后大家还是要试一下才知道好不好用。

原代码地址:http://ejohn.org/blog/javascript-micro-templating/

码字很辛苦,转载请注明来自标点符《Javascript模板引擎分享》

评论

  1. ftium4 #1

    很有意思 不知道速度有没有PHP快

    回复
    2011-11-6