【发布时间】:2025-11-26 16:10:01
【问题描述】:
我正在尝试创建一个包含 10,000 个选项的 html 选择列表。由于数量的原因,我需要它尽可能高效。我已经让它工作了,但我认为它的效率很低
var select = document.createElement("select");
document.body.appendChild(select);
for (var i = 1; i <= 10000; i++) {
var option = document.createElement("option");
var optionText = option.createTextNode("option" + i);
option.value = "option" + i;
option.appendChild(optionText);
select.appendChild(option);
}
我已经读到过多地查询 DOM 可能会很昂贵。有没有更简单的方法来做到这一点?
【问题讨论】:
-
代价高昂的事情是重复从 DOM 读取然后更改 DOM。仅仅改变 DOM 本身并没有那么昂贵。但是,从 UX 方面来看,如果你给他们一个 10000 项选择,你的用户会讨厌你。带着热情。在你的情况下,我会非常努力想出一个替代的 UI 解决方案。
-
请注意,最好在末尾附加
select,一旦它拥有所有options。
标签: javascript algorithm performance loops dom