HTML 下拉控件中的选项(值)数量是否有最大限制?
-
09-06-2019 - |
题
有谁知道下拉列表可以有多少个选项?是无限的吗?在性能下降之前有多少?
解决方案
有谁知道下拉列表可以有多少个选项?是无限的吗?
我想它在理论上是无限的,但在实践中显然不是无限的,因为计算机的 RAM 和特定浏览器的限制发挥了作用。
在性能下降之前有多少?
同样,这取决于几个因素,至少取决于特定的浏览器、计算机的内存和处理能力。
编辑:根据经验,我有包含数千个选项的下拉列表。但这并不理想,因为谁想滚动浏览所有这些呢?这就是为什么出于多种原因更需要某种类型的自动完成,尤其是最终用户的体验。
其他提示
更新:基于 DannyG,在 4GB 内存电脑上使用 Firefox 和 Ubuntu 进行测试,限制远远超过 10k 标签。我当前的 Firefox 设置为最多使用 3GB,并且已达到 100k 选项,但为此,我想您必须更改浏览器的默认配置。
在给出 30 多个选项的所有情况下,我们选择使用 Ajax 自动完成作为替代。
Firefox 和 Chrome 在默认配置下具有 4GB RAM 的 Windows 64b 中都限制为 10k 选项。
使用 JSFiddle 进行测试http://jsfiddle.net/Mare6/
网页:
<a>Testing Select</a>
<select id="list"></select>
JavaScript
window.onLoad = function() {
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);
}
});
问候,
我已经在列表中使用了大约 500 个,没有明显的性能影响(如果有帮助的话)!
是的,Chrome 和 Safari 的最大数量为 10000 个项目 select
至少元素。
Chrome 源代码中的相关行可以在这里找到:定义的最大值为 10000, 强制执行限制并将错误放入控制台的代码
从我的测试来看,Firefox 似乎没有实际限制。
理论上是没有限制的,但是有些浏览器会实现限制。(类似于使用 document.write
处于无限循环中。)
但是,归根结底,我在下拉列表中推荐的最多大约是 50 个,因为没有人愿意滚动那么多。也就是说,如果按照字母顺序进行组织,下拉列表中包含多达 200 个项目可能比较合适。(就像注册表单一样,您必须选择您的出生国家/地区。)
此外,当您有许多不同的设置选择时,无论如何,下拉列表通常是最佳选择。