【问题标题】:Javascript performance: Attaching variables to cached dom element vs attaching id calling by idJavascript 性能:将变量附加到缓存的 dom 元素与附加 id 通过 id 调用
【发布时间】:2014-03-23 21:00:39
【问题描述】:

假设我们有一个要求,其中一个元素可以以多种状态存在。

var a = documentCreateElement('a');

要检查元素 a 处于哪个状态并记录活动状态,我有这个对象:

var state = {
    all_states = ['State 1', 'State 2', 'State 3'],
    active = 'State 2'
}

哪个进程会占用更多资源?

  • A : 将 ID 附加到 a 并检查 state 对象中的状态?并通过 ID 调用元素来修改元素(比如说更改 ahref)。

    • B : 或者,元素 a 已经缓存在 a 中,将对象直接附加到 a,从而避免一起重新缓存元素。

例如选择 B:

a.state = state;
// Check state by checking a.state.active

【问题讨论】:

标签: javascript performance


【解决方案1】:

我敢打赌,缓存版本会更快,因为解析复杂文档可能会很昂贵,而且您需要保留指向 js 对象的指针。但是,为了确保您必须对其进行测试。请务必使用与您打算发布的内容具有同等复杂性的 html 文档。

【讨论】:

  • 我运行了一个包含大量元素(约 40 个)的测试用例,缓存版本(选择 B)的性能要好得多。几乎是 40 倍。谢谢!
猜你喜欢
  • 2019-06-28
  • 2015-11-18
  • 1970-01-01
  • 2012-03-17
  • 1970-01-01
  • 2015-05-28
  • 2014-03-10
  • 2016-07-24
  • 2011-05-28
相关资源
最近更新 更多