ejs和swig对比的问题之一
本来想测试下两者在nodejs中得执行速度,设置了一个测试数据,如下
var testData = {
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 = {
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对比的问题之一
ejs和swig对比的问题之一的更多相关文章
- ejs和swig对比问题之二
上一次用浏览器里面简单的进行了测试,得到的数据是swig是ejs的速度的一倍左右,这次在控制台进行测试,能够得到比较精确的数据,并加入了dot一块儿进行测试. 测试数据是一百万条记录 创建测试数据cr ...
- What is NodeJS(学习过程)
为什么要学习node.首先是听说了这个和前后端分离有很大的关系.node作为一个基础的技术,需要提前学习.学习node,不打算直接先跟着视频去学习老师们的课程.因为想自己找到一种适合自己的学习方法.之 ...
- hexo —— 简单、快速、强大的Node.js静态博客框架
hexo是一款基于Node.js的静态博客框架.目前在GitHub上已有1375 star 和 219 fork. 特性 风一般的速度 Hexo基于Node.js,支持多进程,几百篇文章也可以秒生成. ...
- 使用Hexo & Github,搭建属于自己的博客
经过在网上各种找资料,踩过各种坑,终于搭建好了hexo,直接与gitbub一起使用,搭建起自己的免费的博客. 关于Hexo Hexo是一款基于Node.js的静态博客框架. Hexo特性 风一般的速度 ...
- 如何用 windows+github搭建一个优美的hexo博客
1.Hexo简单介绍 Hexo 是一个快速.简洁且高效的博客框架.Hexo 使用 Markdown(或其他渲染引擎)解析文章,在几秒内,即可利用靓丽的主题生成静态网页. 风一般的速度Hexo基于Nod ...
- node.js—express+ejs、express+swig、
安装:npm install -g express-generator 普通express 网站 创建:express testWeb 安装依赖:npm install 修改app.js文件并运行 找 ...
- swig模板引擎和ejs模板引擎
swig模板引擎的基本用法: 1. 变量 {{ name }} //name名前后必须要加空格,不加就会报错 2. 属性 {{ student.name }} 3. 模板继承 swig使用exten ...
- 用nodejs,express,ejs,mongo,extjs实现了简单了网站后台管理系统
源代码下载地址:http://download.csdn.net/detail/guoyongrong/6498611 这个系统其实是出于学习nodejs的目的而改写的系统. 原来的系统前端使用了ex ...
- Nodejs in Visual Studio Code 04.Swig模版
1.开始 设置Node_Global:npm config set prefix "C:\Program Files\nodejs" Express组件:npm install e ...
随机推荐
- Oracle意外赢官司,程序员或过苦日子
关于“Google在Android平台使用Java侵犯知识产权”一案,2014年5月,联邦法院判定Oracle获胜,这个结果完全出人意料,因为这样一来无异于打开了软件开发领域中API使用方式的潘多拉之 ...
- 检验Xcode是否被改动过的简单方法,不妨试试!!!
检验Xcode是否被改动过的简单方法,不妨试试!!! 在终端系统上运行以下命令启用检测: spctl --assess --verbose /Applications/Xcode.app ...
- Redis学习篇(七)之事务
Redis中的事务 开启事务 MULTI:开启事务,事务块中多条语句会按照顺序放入队列当中,最后由EXEC来执行 MULTI INCT counter1 INCR counter2 INCR coun ...
- POJ1741 Tree 树分治模板
http://poj.org/problem?id=1741 题意:一棵n个点的树,每条边有距离v,求该树中距离小于等于k的点的对数. dis[y]表示点y到根x的距离,v代表根到子树根的距离 ...
- MODI出现ORC RUNNING ERROR的解决方法
stackflow都没个靠谱的说法,最后还是csdn上看到的.转一个备用.http://bbs.csdn.net/topics/390135443 由于直接执行Mircosoft Office Doc ...
- poj 2342 && hdu 1520 树形dp
题意:有n个人,接下来n行是n个人的价值,再接下来n行给出l,k说的是l的上司是k,这里注意l与k是不能同时出现的 链接:点我 dp[i][1] += dp[j][0], dp[i][0] += ma ...
- Codeforces Round #303 (Div. 2) C. Woodcutters 贪心
C. Woodcutters Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/545/probl ...
- 使用辗转相除法求两个数的最大公因数(python实现)
数学背景: 整除的定义: 任给两个整数a,b,其中b≠0,如果存在一个整数q使得等式 a = bq 成立,我们就说是b整除 ...
- Octopress + GitHub Page 搭建个人博客
Tips:博客已搬家,新地址:http://wanxudong.top 首先说明两个关键术语: Octopress Octopress是基于 Jekyll 的博客框架.他们的关系就像 jQuery 与 ...
- debian8上安装pyspider - pyspider中文文档 - pyspider中文网
debian8上安装pyspider - pyspider中文文档 - pyspider中文网 #apt-get install python python-dev python-distribu ...