我进行了一些迭代测试,以测试 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;
使用 Element.querySelector
进行查询
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
查询当前文档的所有节点,对吗?
为什么会得到这个结果呢?