模板引擎的主要功能就是把变化的数据融入到不变的模板中,并生成最终结果。目前,前端的主要数据格式无非是XML和JSON。如何将这些数据更加方便的呈现呢?
最近看了很多的PHP模板引擎,今天看到了一个非常棒的Javascript模板引擎,用以更方便的呈现前台数据。它的一个超级简单的、快速的,高速缓存的,非常容易使用的模板引擎。
下面就来看下这个模板引擎是如何工作的。
// Simple JavaScript Templating
// John Resig - http://ejohn.org/ - MIT Licensed
(function(){
var cache = {};
this.tmpl = function tmpl(str, data){
// 判断出我们是否获取一个模板或是否我们要加载一个模板并确定要缓存结果
//Figure out if we're getting a template, or if we need to load the template - and be sure to cache the result.
var fn = !/W/.test(str) ?
cache[str] = cache[str] ||
tmpl(document.getElementById(str).innerHTML) :
// 生成一个可作为模板的可重复使用的函数
// 生成器 (将会被缓存)
new Function("obj",
"var p=[],print=function(){p.push.apply(p,arguments);};" +
// 使用with(){} 作为局部变量引入数据
"with(obj){p.push('" +
// 将模板内容转化成JavaScript
Convert the template into pure JavaScript
str
.replace(/[rtn]/g, " ")
.split(")[^t]*)'/g, "$1r")
.replace(/t=(.*?)%>/g, "',$1,'")
.split("t").join("');")
.split("%>").join("p.push('")
.split("r").join("'")
+ "');}return p.join('');");
// 提供一个基础的currying给用户
return data ? fn( data ) : fn;
};
})();
Currying 的意思为将原来的函数只可带一个参数列表以多个参数列表(注意不是多个参数)实现,如:def foo(x)(y)(z){}。
上面的只是具体实现的JS库,那到底怎么使用呢?
<div id="" even" : "")%>">
<img src=""/>
:
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
机房租用,北京机房租用,IDC机房托管, http://www.fwqtg.net
相关推荐: Xcode7 无证书真机调试 “Could not launch ‘test’ process launch failed: Security” 解决办法
iOS8,iOS7真机测试的时候遇到这样的提示,烦请各位兄弟姐妹帮助解决,万分感谢! 运行程序后提示如下 点击iPad上安装的应用后提示如下: 分享 解决办法:到iPhone的设置里面 找到 通用-> 描述文件 -> 信任应用 选择信任此App :…
服务器托管,北京服务器托管,服务器租用,机房机柜带宽租用
咨询:董先生
电话13051898268 QQ/微信93663045!
上一篇: 几道Java大厂常见面试题(包括笔试和面试题)
下一篇: vue3实现H5网页录音并上传(mp3、wav)兼容Android、iOS和PC端