3
我做了一個測試,迭代次數很少,以測試Document.querySelector
和Element.querySelector
的效率。爲什麼Document.querySelector比Element.querySelector更有效率
標記:
<form>
<input type="text" />
</form>
腳本:
與Document.querySelector
begin = performance.now();
var
i = 0,
iterations = 999999;
for (i; i < iterations; i++)
{
element = document.querySelector('[type="text"]');
}
end = performance.now();
firstResult = end - begin;
與查詢查詢
begin = performance.now();
var
i = 0,
iterations = 999999,
form = document.querySelector('form');
for (i; i < iterations; i++)
{
element = form.querySelector('[type="text"]');
}
end = performance.now();
secondResult = end - begin;
日誌:
console.log(firstResult); // 703.7450000001118
console.log(secondResult); // 1088.3349999999627
的日誌是驚人的我,因爲我認爲,只有在節點上Element.querySelector
查詢是元素的後裔和Document.querySelector
查詢的所有節點上目前的文件,對吧?
爲什麼會得到這樣的結果?
如果添加了1000個兄弟節點的形式,你可能會看到文檔級搜索下降的表現。 –
測試[here](http://jsperf.com/document-vs-element-queryselectorall-performance/3)顯示你的陳述是不正確的 – Tushar
我不知道你的問題的答案,或者你的問題是這是一個很好的基準,但每次調用300微秒的差別似乎不像現實生活中值得擔憂的事情。 – 2015-09-07 04:13:47