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