首页 > 代码库 > ejs和swig对比的问题之一
ejs和swig对比的问题之一
本来想测试下两者在nodejs中得执行速度,设置了一个测试数据,如下
var testData =http://www.mamicode.com/ { title:‘测试标题‘, description: ‘<p>这是一个描述,里面用很多标签,有<h1>h1标签</h1><h2>h2标签</h2><h3>h3标签</h3><h4>h4标签</h4><h5>h5标签</h5><p>但是不会解析‘, datas : createData()};function createData(){ var array = new Array(); var tmp = ‘{name:"我是data{i}", age: {i}, comp: "一个大公司}‘; for(var i = 0; i < 1000; i++){ array[i] = tmp.replace(/{i}/g, i); } return array;}module.exports = testData;
在swig中可以正常解析,但是在ejs中却一直报错,后来才发现问题:ejs中不会把字符串进行转换
在swig中,数组中得字符串会被解析为对象,可以直接使用,在ejs中却无法直接解析, 所以对上面的代码进行修改,如下:
var testData =http://www.mamicode.com/ { title:‘测试标题‘, description: ‘<p>这是一个描述,里面用很多标签,有<h1>h1标签</h1><h2>h2标签</h2><h3>h3标签</h3><h4>h4标签</h4><h5>h5标签</h5><p>但是不会解析‘, datas : createData()};function createData(){ var array = new Array(); for(var i = 0; i < 1000; i++){ array[i] = {name: "我是data" + i, age: i, comp: ‘一个大公司‘}; } return array;}module.exports = testData;
swig的模板页面testswig.html:
<!doctype html><html><head> <meta charset="utf-8"> <script type="text/javascript"> var star = new Date().getTime(); </script> <title>{{title}}</title></head><body> <h1 id="time"></h1><div> <h1>描述</h1> {{description}}</div><div> <h2>一个大列表:</h2> <ul> {% for item in datas -%} <li>姓名:{{item.name}} 年龄:{{item.age}} 公司:{{item.comp}}</li> {%- endfor%} </ul></div><script type="text/javascript"> var end = new Date().getTime(); document.getElementById(‘time‘).innerHTML = end - star;</script></body></html>
ejs的模板页面testejs.ejs
<!doctype html><html><head> <meta charset="utf-8"> <script type="text/javascript"> var star = new Date().getTime(); </script> <title><%= title %></title></head><body> <h1 id="time"></h1><div> <h1>描述</h1> <%= description %></div><div> <h2>一个大列表:</h2> <ul> <% datas.forEach(function(item) { %> <li>姓名:<%= item.name %> 年龄:<%= item.age %> 公司:<%= item.comp %></li> <% }); %> </ul></div><script type="text/javascript"> var end = new Date().getTime(); document.getElementById(‘time‘).innerHTML = end - star;</script></body></html>
测试结果为:
- 1000条数据时,用时都为2ms
- 10000条数据时,swig用时在180ms左右,ejs首次加载时间为470ms,之后加载时间为380毫秒左右摆动。
初步测试swig胜!
这种测试有网络时间和页面加载时间,并不全是模板渲染时间,所以并不精确,但是在其他变量一定的情况下,可以算作是相对精确,差值是正确的。
ejs和swig对比的问题之一
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。