有谁知道下拉列表可以有多少个选项?是无限的吗?在性能下降之前有多少?
6 回答
有谁知道下拉列表可以有多少个选项?是无限的吗?
我想它在理论上是无限的,显然不是在实践中,因为计算机的 RAM 和特定浏览器的限制开始发挥作用。
在性能下降之前有多少?
同样,这取决于几个因素,至少是特定的浏览器、计算机的内存和处理能力。
编辑:根据经验,我有数千个选项的下拉列表。这并不理想,因为谁想滚动浏览所有这些?这就是为什么出于多种原因(尤其是最终用户的体验)更需要某种类型的自动完成。
更新:基于 DannyG,在 4GB mem pc 上使用 Firefox 在 Ubuntu 上进行测试,限制远远超过 10k 标签。我当前的 Firefox 设置为最多使用 3GB,并且已达到 100k 选项,但为此,我猜你必须更改浏览器的默认配置。
在给出 30 多个选项的所有情况下,我们都选择使用 Ajax 自动完成作为替代。
Firefox 和 Chrome 在 Windows 64b 中限制为 10k 选项,默认配置为 4GB 内存。
用 JSFiddle http://jsfiddle.net/Mare6/测试
for (var i=0; i<10000; i++) {
var name = "Option "+i;
var sel = document.getElementById("list");
sel.options[sel.options.length] = new Option(name,i);
}
<a>Testing Select</a>
<select id="list"></select>
问候,
如果有帮助,我已经在列表中使用了大约 500 个,没有明显的性能影响!
select
是的,Chrome 和 Safari 的最大值至少为 10000 个元素。
可以在此处找到 Chrome 源代码中的相关行: Defined max of 10000,强制执行限制并将错误放入控制台的代码
从我的测试来看,Firefox 似乎没有实际限制。
理论上是没有限制的,但是有些浏览器会实现限制。(类似于document.write
在无限循环中使用。)
但是,归根结底,我在下拉列表中推荐的最多大约是 50 个,只是因为没有人愿意做这么多的滚动。也就是说,如果按字母顺序进行组织,则在下拉列表中包含多达 200 个项目可能是合适的。(就像您必须选择出生国家的注册表单一样。)
此外,当您有许多不同的设置选择时,下拉列表通常是最好的选择,无论如何。