我进行了一次测试,只有几次迭代来测试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
log 对我来说太棒了,因为我认为Element.querySelector
只查询作为元素后代的节点,并在当前文档的所有节点上查询Document.querySelector
,正确?
为什么会得到这个结果?
答案 0 :(得分:4)