【问题标题】:Is there a max number of options (values) in HTML drop down control?HTML 下拉控件中是否有最大数量的选项(值)?
【发布时间】:2008-09-03 22:37:47
【问题描述】:

有谁知道下拉列表可以有多少个选项?是无限的吗?在性能下降之前有多少?

【问题讨论】:

  • 我知道这个问题已经很老了,但为了将来参考,我使用了一个带有 30800 个选项的选择并且工作得很好(当 php 脚本没有时间获取值时)
  • 如果 AJAX 数据库查询正在填充列表,则更大的问题可能是超时。因此,如果这是他们的情况,登陆这里的人可能还想搜索 AJAX 超时。

标签: html drop-down-menu html-select


【解决方案1】:

有谁知道下拉列表可以有多少个选项?是无限的吗?

我想它在理论上是无限的,显然不是在实践中,因为计算机的 RAM 和特定浏览器的限制开始发挥作用。

在性能下降之前有多少?

同样,这取决于几个因素,至少是特定的浏览器、计算机的内存和处理能力。


编辑:根据经验,我拥有包含数千个选项的下拉列表。不过这并不理想,因为谁想滚动浏览所有这些内容?这就是为什么出于多种原因(尤其是最终用户的体验)更需要某种类型的自动完成功能的原因。

【讨论】:

    【解决方案2】:

    更新:基于 DannyG,在 Ubuntu 和 Firefox 上在 4GB 内存 pc 上进行测试,限制远远超过 10k 个标签。我当前的 Firefox 设置为最多使用 3GB,并且已达到 100k 选项,但为此,我猜你必须更改浏览器的默认配置。

    在所有给出 30 多个选项的情况下,我们都选择使用 Ajax 自动完成作为替代。

    Firefox 和 Chrome 在默认配置为 4GB 内存的 Windows 64b 中限制为 10k 选项。

    用 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>

    问候,

    【讨论】:

    • 令人着迷,特别是因为 Mozilla 的文档声明“允许的内容零个或多个 元素”。 - developer.mozilla.org/en-US/docs/Web/HTML/Element/…
    • 不正确,我有 80000 个选项,chrome 允许在一台机器上 30.000,在另一台机器上允许 20.800,第一台机器有 8Gbs 的 RAM,第二台有 4GB,所以它主要基于计算机规格。
    【解决方案3】:

    如果有帮助的话,我已经在列表中使用了大约 500 个,没有明显的性能影响!

    【讨论】:

    • 在移动设备上是另一回事
    【解决方案4】:

    是的,对于 Chrome 和 Safari,select 元素的最大值至少为 10000 个。

    Chrome 源代码中的相关行可以在这里找到: Defined max of 10000, Code that enforces limit and puts error in console

    从我的测试来看,Firefox 似乎没有任何实际限制。

    【讨论】:

      【解决方案5】:

      根据我的经验,性能下降通常是在用户一方,我的黄金法则(在某处学到的)是七个选项,给予或接受一些。

      在更与 SW 相关的基础上,可能是 Integer 的最高范围。

      编辑:顺便说一句,这与Atwood 有点相关

      【讨论】:

        【解决方案6】:

        理论上没有限制,但有些浏览器会实施限制。 (类似于在无限循环中使用document.write。)

        但是,归根结底,我在下拉列表中推荐的最多大约是 50 个,因为没有人愿意做这么多的滚动。也就是说,如果按字母顺序进行组织,则在下拉列表中包含多达 200 个项目可能是合适的。 (就像您必须选择出生国家/地区的注册表单一样。)

        此外,当您有许多不同的设置选择时,下拉列表通常是最好的选择,无论如何。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2013-03-07
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多