博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
模板渲染引擎
阅读量:5057 次
发布时间:2019-06-12

本文共 1941 字,大约阅读时间需要 6 分钟。

1  var template = (function () { 2             /*  Simple JavaScript Templating 3              John Resig - http://ejohn.org/ - MIT Licensed */ 4             var cache = {}; 5             return tmpl = function (str, data) { 6                 /* Figure out if we're getting a template, or if we need to */ 7                 /* load the template - and be sure to cache the result. */ 8                 var fn = !/\W/.test(str) ? cache[str] = cache[str] || tmpl(document.getElementById(str).innerHTML) : 9 10                     /* Generate a reusable function that will serve as a template */11                     /*  generator (and which will be cached). */12                         new Function("obj", "var p=[],print=function(){p.push.apply(p,arguments);};" +13 14                                     /* Introduce the data as local variables using with(){} */15                                 "with(obj){p.push('" +16 17                                     /* Convert the template into pure JavaScript */18                                     /* modified by yiguo .for extension function */19                                 str.replace(/[\r\t\n]/g, " ").split("<%").join("\t").replace(/((^|%>)[^\t]*)'/g, "$1\r").replace(/\t=(.*?)%>/g, function (a, b, c) {20                                     var arr = b.split("|");21                                     if (arr.length > 1) {22                                         b = "tmpl.fns['" + arr[1] + "' ](" + arr[0] + ",'" + arr[2] + "')";23                                     }24                                     return "'," + b + ",'";25 26                                 }).split("\t").join("');").split("%>").join("p.push('").split("\r").join("\\'") + "');}return p.join('');");27 28                 /* Provide some basic currying to the user*/29                 return data ? fn(data) : fn;30             };31         })();

 

转载于:https://www.cnblogs.com/hanfei-cn/p/5199083.html

你可能感兴趣的文章
“富豪相亲大会”究竟迷失了什么?
查看>>
控制文件的备份与恢复
查看>>
返回代码hdu 2054 A==B?
查看>>
Flink独立集群1
查看>>
iOS 8 地图
查看>>
20165235 第八周课下补做
查看>>
[leetcode] 1. Two Sum
查看>>
iOS 日常工作之常用宏定义大全
查看>>
PHP的SQL注入技术实现以及预防措施
查看>>
MVC Razor
查看>>
软件目录结构规范
查看>>
Windbg调试Sql Server 进程
查看>>
linux调度器系列
查看>>
mysqladmin
查看>>
解决 No Entity Framework provider found for the ADO.NET provider
查看>>
SVN服务器搭建和使用(三)(转载)
查看>>
Android 自定义View (三) 圆环交替 等待效果
查看>>
设置虚拟机虚拟机中fedora上网配置-bridge连接方式(图解)
查看>>
HEVC播放器出炉,迅雷看看支持H.265
查看>>
[置顶] Android仿人人客户端(v5.7.1)——人人授权访问界面
查看>>