博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
console.log的一个应用 -----用new方法生成一个img对象和document.createElement方法创建一个img对象的区别...
阅读量:5790 次
发布时间:2019-06-18

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

我用两种方法来生成img对象,第一种方法是用new方法,第二种方法是用document.createElement方法。

 

[javascript]
  1. var img1 = new Image();  
  2. var img2 = document.createElement('img');  
var img1 = new Image();var img2 = document.createElement('img');
其实,乍一看,感觉有些不同,但是具体什么不同,一下子也说不上来。

 

在console窗口,比较看看,都是生成img对象,节点名称都一样。

接下来,我来比较一下它们的node类型

结果nodeType也是一样的,都属于元素节点。

节点类型常用的有3种,元素节点Node.ELEMENT_NODE(1);属性节点Node.ATTRIBUTE_NODE(2)以及文本节点Node.TEXT_NODE(3)。

从类型和名称上看,这两种方法创建的img节点是没有什么不同的。

最后,比较一下效率吧。分别运算10万次。

 

[javascript]
  1. <SPAN style="WHITE-SPACE: pre"> </SPAN>var time1= new Date() - 0;  
  2.         for(var i = 0; i < 100000; i++) {  
  3.             var img1 = new Image();  
  4.         }  
  5.         var time2 = new Date() - 0;  
  6.         console.log('the first time is ' + (time2 - time1));  
  7.   
  8.   
  9.         var time3= new Date() - 0;  
  10.         for(var i = 0; i < 100000; i++) {  
  11.             var img1 = document.createElement('img');   
  12.         }  
  13.         var time4 = new Date() - 0;  
  14.         console.log('the second time is ' + (time4 - time3));  
var time1= new Date() - 0;        for(var i = 0; i < 100000; i++) {            var img1 = new Image();        }        var time2 = new Date() - 0;        console.log('the first time is ' + (time2 - time1));        var time3= new Date() - 0;        for(var i = 0; i < 100000; i++) {            var img1 = document.createElement('img');         }        var time4 = new Date() - 0;        console.log('the second time is ' + (time4 - time3));
得出的结论是document.createElement()方法的效率更好!

 

那么计算100万次呢?却有点出乎意料,new Image()方法更胜一筹!

1000次的时候,是document.CreateElement()方法更有效率!

1000万次的时候,new Image()方法更快,我洗脸刷牙泡脚完毕的时候,document.createElement()方法都还没有计算完成呢,再后来直接崩溃了。

所以,在生成对象个数较少的时候,用document.createElement()似乎更好!

 

 

转载地址:http://aagyx.baihongyu.com/

你可能感兴趣的文章
我的友情链接
查看>>
Java Web Application 自架构 一 注解化配置
查看>>
如何 debug Proxy.pac文件
查看>>
Python 学习笔记 - 面向对象(特殊成员)
查看>>
Kubernetes 1.11 手动安装并启用ipvs
查看>>
Puppet 配置管理工具安装
查看>>
Bug多,也别乱来,别被Bug主导了开发
查看>>
sed 替换基础使用
查看>>
高性能的MySQL(5)创建高性能的索引一B-Tree索引
查看>>
oracle备份与恢复--rman
查看>>
图片变形的抗锯齿处理方法
查看>>
Effective C++ Item 32 确保你的 public 继承模子里出来 is-a 关联
查看>>
phpstorm安装laravel-ide-helper实现自动完成、代码提示和跟踪
查看>>
python udp编程实例
查看>>
TortoiseSVN中图标的含义
查看>>
Tasks and Back stack 详解
查看>>
关于EXPORT_SYMBOL的作用浅析
查看>>
成功的背后!(给所有IT人)
查看>>
在SpringMVC利用MockMvc进行单元测试
查看>>
Nagios监控生产环境redis群集服务战
查看>>