【发布时间】:2013-05-23 16:33:12
【问题描述】:
我有一个用例需要从元素中获取多个 html5 数据属性。这发生在跨越许多元素的循环中,并将数据推送到数组中进行缓存。
通过一些研究,似乎使用el.getAttribute('data-whatever') 比使用原生html5 dataset 方法更快,但是我需要从同一个元素中获取大约5 个单独的数据属性。
dataset 方法允许您通过一次调用检索所有数据属性,然后使用标准对象点表示法( dataset.index、dataset.whatever、dataset.somethingelse )访问它们,而使用 getAttribute 我必须重复 getAttribute 调用以检索所有需要的数据。
如果使用不兼容的属性,我当然可以简单地使用点符号来访问属性,从而大大加快了这个功能。但是使用 html5 数据属性这不起作用(即 el.data-whatever 将始终未定义)。
我希望保持符合标准,因此我正在寻找检索这些多个数据属性的最快方法。
提前致谢。
【问题讨论】:
-
您可以在jsperf.com进行测试
-
从 DOM 节点获取属性似乎不太可能成为性能的焦点。您是否使用 Firefox 或 Chrome(或其他任何工具)分析您的代码以寻找“热点”?
-
@Pointy 是的,我已经详细介绍过了。这是一个非常不寻常的用例,因此这种优化是实际需要的。无论如何谢谢:)
标签: javascript html