用new方法生成一個img物件和document.createElement方法建立一個img物件的區別
阿新 • • 發佈:2019-02-18
我用兩種方法來生成img物件,第一種方法是用new方法,第二種方法是用document.createElement方法。
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萬次。
得出的結論是document.createElement()方法的效率更好!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));
那麼計算100萬次呢?卻有點出乎意料,new Image()方法更勝一籌!
1000次的時候,是document.CreateElement()方法更有效率!
1000萬次的時候,new Image()方法更快,我洗臉刷牙泡腳完畢的時候,document.createElement()方法都還沒有計算完成呢,再後來直接崩潰了。
所以,在生成物件個數較少的時候,用document.createElement()似乎更好!