【问题标题】:Is there a maximum number of input controls that can be used on an HTML form?可以在 HTML 表单上使用的输入控件是否有最大数量?
【发布时间】:2010-06-03 20:28:32
【问题描述】:

我对包含表格 (gridview) 的 asp.net 2.0 网页有一个雄心勃勃的要求,并且网格中的每一行都包含 6 个用于数据输入的选择(下拉)控件。将显示的行数取决于用户的搜索参数,这些参数在页面的另一个区域中指定。不幸的是,在指定默认(甚至是基本)搜索参数的情况下,网格可能包含数百行。我注意到浏览器(在本例中为 IE8)在我到达大量行时开始表现得相当不稳定——没有记录的证据表明这开始成为问题的行数。例如,尝试查看页面的源代码会导致来自 IE 的消息指出该页面存在问题,迫使浏览器重新加载它,而我从未获得源代码。显然页面加载和呈现也相当缓慢。

我知道我的解决方案可能涉及对 gridview 进行分页,使其每页仅显示 20 行左右,并且我必须编写代码来处理用户更改时下拉值更改的保存页。我也可以关闭 gridview 上的视图状态。然而,我真正想提出的问题是——有没有人看过一个记录在案的规则,表明 HTML 浏览器表单应该能够包含的输入控件的最大数量?搜索后我在 Internet 上找不到任何东西,我怀疑答案可能是浏览器可以根据运行的机器配置处理的任何内容。你有什么经验法则吗?

感谢您的任何建议。

丰富

【问题讨论】:

  • 唯一记录在案的规则是常识——不要在页面上放置更多控件,而不是在桌面应用程序中的表单上放置控件。

标签: asp.net html


【解决方案1】:

有更好的设计吗?使用场景是什么?

例如,提出这样的要求(我不太喜欢称之为“网络上的 Excel”),是否可以提供一个很大程度上只读的数据集,然后使用 jQuery 更改单个单击时编辑控件的行?也许甚至,使用一些服务器端分页,模拟“无限滚动”,同时仍然一次只加载 20 行?通过这种方式,您可以使显示的(和 DOM 存储的)数据更小,同时减少浏览器中编辑控件的数量,除此之外仍然提供大部分(如果不是全部)所需的功能。

一般来说,一次可见的大量输入控件是可用性的噩梦,并且在视觉上非常分散注意力并且难以排列/处理。毫无疑问,使用我上面描述的解决方案会更好。是的,这将是大量的客户端脚本,但在浏览器、用户,最终甚至是您上会更容易。

【讨论】:

    【解决方案2】:

    这几乎取决于客户端计算机的内存。据我所知,控件的数量没有实际限制。归根结底,是浏览器引擎呈现代码指示的任何内容。那里没有 if 语句说:

    if (this.InputControls.Count > N) then GoBang();
    

    您在使用大量控件时可能遇到的不稳定行为可能是由于计算机的 CPU 和内存受到影响而导致的控件渲染本身。如果您在几台不同规格的机器上部署项目并运行该站点,您可能会看到不同之处。

    但是,您真的需要如此大量的控件吗?你说你认为你应该使用分页的事实表明你知道你做错了。正确执行并实施分页,否则您以后会遇到问题需要解决并抱怨客户;)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-05-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-11-25
      相关资源
      最近更新 更多