Javascript IE11是否使用哈希表优化document.getElementById()?

Javascript IE11是否使用哈希表优化document.getElementById()?,javascript,internet-explorer-11,getelementbyid,Javascript,Internet Explorer 11,Getelementbyid,IE11是否使用哈希表来优化对document.getElementById()的调用?如果不是,则使用哪种优化?我的逻辑是,document.getElementById()将被相当频繁地调用,并且完全遍历DOM树将是低效的,因此优化它是有意义的 为了回答我的问题,我正在询问特定的浏览器和特定的方法。我想是的。请检查以下描述浏览器内部的内容。现在,为了在IE11中验证这一点,如果您检查窗口对象,您将看到一个由id引用的控件 var control = document.getElementBy

IE11是否使用哈希表来优化对
document.getElementById()
的调用?如果不是,则使用哪种优化?我的逻辑是,
document.getElementById()
将被相当频繁地调用,并且完全遍历DOM树将是低效的,因此优化它是有意义的


为了回答我的问题,我正在询问特定的浏览器和特定的方法。

我想是的。请检查以下描述浏览器内部的内容。现在,为了在IE11中验证这一点,如果您检查窗口对象,您将看到一个由id引用的控件

var control = document.getElementById("#id")
你可以直接做一个

var control = window["id"] 

并获取元素的引用。

我希望是这样,但我不知道从哪里看它是否正确。一般来说,浏览器总是优化按ID获取项目。事实上,微软的想法是甚至将ID附加到
窗口
对象。这意味着如果你有一个ID为
myElement
的元素,你会发现一个
window.myElement
条目中有这个元素。这后来成为一个标准。这源于早期的IE,它显示了优化访问的努力。我真诚地怀疑他们现在是否使用IE11进行了全面扫描。是的,我想我们必须希望一位微软工程师偶然发现这个问题:)你可以生成两个不同的页面,使用不同的div数。测量在两个页面上按id获取一个div所需的时间。如果在后台使用哈希表,则时间不应取决于div.IE/Edge MVP的数量。我将把它传递给团队,看看是否有人有任何见解!如果没有Microsft的评论,我不确定我们是否会知道这是如何发生的,但当答案进入一些细节时,您可能想查看一下。我想您的意思是
window[“id”]
?在chrome上试过了,很好用。对不起,打字错误。编辑了答案。这并不能证明IE在内部用哈希表处理这个问题。API!=实施细节