首页 > 代码库 > 前端模板引擎 超轻量
前端模板引擎 超轻量
;(function(global ,undefined){ var cache = {} var sn = ‘_ret_‘ + new Date().toString(36) function etic(tplNode , data){ var tplId = tplNode.id || (tplNode.id = uuid()) function cbk(){ return data ? cache[tplId].call(data) : cache[tplId] } if (cache[tplId]) return cbk() var tpl = tplNode.innerHTML var con = ‘var ‘ + sn + ‘ ="" ;‘ function tLine(str ){ return str.replace(/[\r\t\n]/g, " ").replace(/‘/g , "\\‘") } while (true){ var sPos = tpl.indexOf(‘<?‘) if (-1 == sPos) break var ePos = tpl.indexOf(‘?>‘ , sPos + 2) var part1 = tpl.slice(0,sPos) , f = tpl.slice(sPos + 2 , ePos) ,tpl = tpl.slice(ePos + 2) var op = f.charAt(0) if (part1.length) con += sn + " += ‘" + tLine(part1) + "‘;" switch (op){ case ‘=‘ : f = f.slice(1) con += sn + " += " + f + ";" break default: con += f } } tpl.length && (con += sn + " += ‘" + tLine(tpl) + "‘;") con += ‘return ‘ + sn try{ cache[tplId] = new Function("" , con) return cbk() }catch(e){ console && console.log(e , tpl) } } global.etic = etic})(this)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。