js创建dom与jq创建的dom的性能测试-(记得引入jquery)
2017-07-05 18:23
411 查看
总结:无论创建几次,js性能总比jq好!,
![](https://img-blog.csdn.net/20170705182452189?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMzI5OTYzNQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>js创建dom与jq创建的dom的性能测试</title>
<style type="text/css">
.wrap{width:49%;height:300px;overflow:auto;border:1px solid pink;}
.fl{float:left;}
.fr{float:right;}
.wrap div{float:left;width:50px;height:50px;margin:5px;border:1px solid red;}
</style>
</head>
<body>
<p>
<input type="button" value="js创建10000个div耗时" onClick="jsFn()"/>
<input type="button" value="jq创建10000个div耗时" onClick="jqFn()"/>
</p>
<div id="wrap1"class="wrap fl"></div>
<div id="wrap2"class="wrap fr"></div>
<script type="text/javascript" src="js/jquery.min.js"></script>
<script type="text/javascript">
var count = 10000;
// js创建
function jsFn(){
Timer.start("js");
var wrap = document.getElementById('wrap1');
var span = document.createElement('span');
for(var i=0;i<count;i++){
var div = document.createElement('div');
var cont = document.createTextNode(i+'-');
var span1 = document.createElement('span'),
span2 = document.createElement('span'),
span3 = document.createElement('span'),
span4 = document.createElement('span'),
span5 = document.createElement('span');
var span1Val = document.createTextNode(1),
span2Val = document.createTextNode(2),
span3Val = document.createTextNode(3),
span4Val = document.createTextNode(4),
span5Val = document.createTextNode(5);
span1.appendChild(span1Val);
span2.appendChild(span2Val);
span3.appendChild(span3Val);
span4.appendChild(span4Val);
span5.appendChild(span5Val);
div.appendChild(cont);
div.appendChild(span1);
div.appendChild(span2);
div.appendChild(span3);
div.appendChild(span4);
div.appendChild(span5);
span.appendChild(div);
}
wrap.appendChild(span);
Timer.stop("js");
console.log("js:the time is:"+Timer.getTime("js"));
}
// jq创建
function jqFn(){
Timer.start("jq");
var div = '';
for(var i=0;i<count;i++){
div+='<div>'+i+
'-<span>1</span>'+
'<span>2</span>'+
'<span>3</span>'+
'<span>4</span>'+
'<span>5</span>'+
'</div>';
}
$('#wrap2').append(div);
Timer.stop("jq");
console.log("jq:the time is:"+Timer.getTime("jq"));
}
/* 计算程序执行所耗时间 key:标记*/
var dataTime = [];
var Timer={
data:{},
start:function(key){
Timer.data[key]=new Date();
},
stop:function(key){
var time=Timer.data[key];
if(time)
Timer.data[key]=new Date()-time;
// console.log(Timer.data[key])
},
getTime:function(key){
calculation(Timer.data[key]);//计算总耗时+平均耗时
return Timer.data[key];
}
};
//计算总耗时+平均耗时
function calculation(s){
dataTime.push(s);
var dataTimelen = dataTime.length;
var nums = 0;
for(var i=0;i<dataTimelen;i++){
nums += dataTime[i];
}
var avg = nums/dataTimelen;
console.info(' ');
console.log(dataTime.toString())
console.info('共'+dataTimelen+'次,平均耗时:'+avg);
}
</script>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>js创建dom与jq创建的dom的性能测试</title>
<style type="text/css">
.wrap{width:49%;height:300px;overflow:auto;border:1px solid pink;}
.fl{float:left;}
.fr{float:right;}
.wrap div{float:left;width:50px;height:50px;margin:5px;border:1px solid red;}
</style>
</head>
<body>
<p>
<input type="button" value="js创建10000个div耗时" onClick="jsFn()"/>
<input type="button" value="jq创建10000个div耗时" onClick="jqFn()"/>
</p>
<div id="wrap1"class="wrap fl"></div>
<div id="wrap2"class="wrap fr"></div>
<script type="text/javascript" src="js/jquery.min.js"></script>
<script type="text/javascript">
var count = 10000;
// js创建
function jsFn(){
Timer.start("js");
var wrap = document.getElementById('wrap1');
var span = document.createElement('span');
for(var i=0;i<count;i++){
var div = document.createElement('div');
var cont = document.createTextNode(i+'-');
var span1 = document.createElement('span'),
span2 = document.createElement('span'),
span3 = document.createElement('span'),
span4 = document.createElement('span'),
span5 = document.createElement('span');
var span1Val = document.createTextNode(1),
span2Val = document.createTextNode(2),
span3Val = document.createTextNode(3),
span4Val = document.createTextNode(4),
span5Val = document.createTextNode(5);
span1.appendChild(span1Val);
span2.appendChild(span2Val);
span3.appendChild(span3Val);
span4.appendChild(span4Val);
span5.appendChild(span5Val);
div.appendChild(cont);
div.appendChild(span1);
div.appendChild(span2);
div.appendChild(span3);
div.appendChild(span4);
div.appendChild(span5);
span.appendChild(div);
}
wrap.appendChild(span);
Timer.stop("js");
console.log("js:the time is:"+Timer.getTime("js"));
}
// jq创建
function jqFn(){
Timer.start("jq");
var div = '';
for(var i=0;i<count;i++){
div+='<div>'+i+
'-<span>1</span>'+
'<span>2</span>'+
'<span>3</span>'+
'<span>4</span>'+
'<span>5</span>'+
'</div>';
}
$('#wrap2').append(div);
Timer.stop("jq");
console.log("jq:the time is:"+Timer.getTime("jq"));
}
/* 计算程序执行所耗时间 key:标记*/
var dataTime = [];
var Timer={
data:{},
start:function(key){
Timer.data[key]=new Date();
},
stop:function(key){
var time=Timer.data[key];
if(time)
Timer.data[key]=new Date()-time;
// console.log(Timer.data[key])
},
getTime:function(key){
calculation(Timer.data[key]);//计算总耗时+平均耗时
return Timer.data[key];
}
};
//计算总耗时+平均耗时
function calculation(s){
dataTime.push(s);
var dataTimelen = dataTime.length;
var nums = 0;
for(var i=0;i<dataTimelen;i++){
nums += dataTime[i];
}
var avg = nums/dataTimelen;
console.info(' ');
console.log(dataTime.toString())
console.info('共'+dataTimelen+'次,平均耗时:'+avg);
}
</script>
</body>
</html>
相关文章推荐
- js和jquery对dom节点的操作(创建/追加)
- jQuery第二课 ——节点选择、元素创建与操作、包装对象、jq转原生js
- 创建含有按钮的动态表格(php+js+jquery+DOM)
- js和jquery对dom节点的操作(创建/追加)
- 案例-js-模块化创建dom与字符串创建dom的耗时比较(性能优化)
- 动态创建Dom元素,并设置属性和类----JS&JQ
- IT咨询顾问:一次吐血的项目救火 java或判断优化小技巧 asp.net core Session的测试使用心得 【.NET架构】BIM软件架构02:Web管控平台后台架构 NetCore入门篇:(十一)NetCore项目读取配置文件appsettings.json 使用LINQ生成Where的SQL语句 js_jquery_创建cookie有效期问题_时区问题
- js性能测试
- 动态创建表格js文件,javascript,Ajax,DHTML动态实现表格的创建,动态读取XML中的文件,读取dom节点的例子。
- jquery之引入jq
- jQuery 创建Dom元素
- js和jquery对DOM的操作
- 关于jQuery创建多个相同的dom
- jQuery - 参考资料 - JavaScript性能测试
- jquery动态添加dom节点 js动态添加dom节点
- 尴尬了,在 Google 自己的 JS 性能测试软件中 Chrome 仅列第三[古奥,2010.3.20](朱佳峰)
- js/jq修改或获取CSS属性,DOM属性
- js和jquery对DOM的操作
- 通过JS动态创建DOM元素备忘
- jQuery 的DOM操作方法 元素的创建、复制、重组、修饰