gpt4 book ai didi

javascript - 哈希表比 document.getElementById 更快吗?

转载 作者:行者123 更新时间:2023-11-28 13:29:13 24 4
gpt4 key购买 nike

如果我有一个这样的节点:

    <!-- lots of HTML here (including lots of nest unordered lists) -->
<span id="spn123">Test</span>
<!-- lots of html here -->

隐藏在许多级别的 HTML 下,我还有一个像这样的 JavaScript 哈希表:

[
/* lots of nodes here */
{ 123 : 'Test' }
/* lots of nodes here */
]

那么使用起来会不会更快

document.getElementById('spn123').innerText;

data(123)

我假设两者都是由浏览器 native 处理的,并且都经过了非常优化,但后者会因为其扁平结构和缺乏额外的 DOM 膨胀而更快吗?

谢谢!

最佳答案

了解为什么同时拥有对象和 DOM 表示形式可能会很有用。我假设哈希是唯一的事实来源,并且 DOM 相应地呈现哈希。

我希望哈希查找更快,因为 DOM 可能很慢,但这主要是写入 DOM,而不是读取 DOM。我做了一个JS Perf并且结果因浏览器的不同而有很大差异。

在这些场景中,我喜欢创建一个函数来抽象实现,以便以后可以更改它,而无需在代码中找到对查找的每个引用:

function getItem(id) {
return hash[id];
}

如果您以后找到更优化的方式来查找数据,您只需更改该函数即可。

更新:我将 jsperf 更改为使用 textContent,但这在旧版浏览器中不起作用。

关于javascript - 哈希表比 document.getElementById 更快吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26434382/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com