代码之家  ›  专栏  ›  技术社区  ›  jayarjo

浏览器可以显示的html元素的数量有没有限制?

  •  11
  • jayarjo  · 技术社区  · 16 年前

    基本上,我有一个巨大的表,当用户向下滚动(自动预加载后续行)时,它会变得更大。在某个时间点,浏览器变得迟钝,它开始挂起了一会儿,因为我点击周围或试图滚动,它变得越来越迟钝,它得到更多的行。我想知道页面能容纳的元素数量有没有限制?或者可能只是我的javascript泄漏到了某个地方(尽管我只有一个事件处理程序,连接到表的tbody,还有一个解析冒泡mousedown事件的脚本)。

    更新:

    更新 http://client.infinity-8.me/table.php?num=1000 (你可以通过任何你想要的号码 号码 ),基本上它呈现一个带有 号码

    11 回复  |  直到 9 年前
        1
  •  4
  •   Mark Byers    16 年前

    我认为这个标准没有限定。每个浏览器实现中可能都有一个硬编码的限制,尽管我可以想象这个限制可能是数十亿个元素。另一个限制是可寻址内存的数量。

    您可能还需要考虑另一种接口,如分页。

        2
  •  6
  •   Dave Markle    16 年前

    另一件事,你应该看看是表大小。如果你的桌子是用 table-width:auto; 浏览器必须测量表中的每个元素才能调整其大小。这会变得非常慢。

    相反,选择一个固定的宽度,或者至少使用 table-width:fixed .

        3
  •  4
  •   eugeneK    16 年前

    你们应该担心一个事实,正常人不喜欢大桌子这就是分页的目的。为了更好的可用性和其他问题,使用分页将其分开。

    想想那本没有书页只有一大页的书,你想读吗?即使你的眼睛(我们的电脑)可以处理它。

        4
  •  0
  •   JochenJung    16 年前

    我认为没有限制。 但是,HTML文件越长,您的计算机需要的资源就越多。但是桌子必须很大。。。

        5
  •  0
  •   Russell    16 年前

    限制实际上是由所使用的用户代理和客户机决定的。HTML与XML一样,是一种树格式的数据。因此,元素越多,客户端浏览器必须搜索的树越远,才能呈现页面。

    我在向一个div添加100多个表时遇到了问题(作为IE6的一个旧解决方案,无法动态创建表元素)。

        6
  •  0
  •   xil3    16 年前

    你用什么浏览器?有些浏览器可以比其他浏览器更好地处理事情——例如,如果你使用的是IE,如果它运行缓慢,我也不会感到惊讶——它不能像基于webkit的浏览器那样处理javascript事件。

    另一件事显然是你的电脑(RAM和CPU)。但老实说,大多数电脑不应该有问题,除非我们谈论10000多行。。。即使这样。。。

        7
  •  0
  •   Janick Bernet    16 年前

    考虑到浏览器和渲染引擎的数量众多,性能特征也各不相同,而且这些引擎的性能得到稳步提高,计算机硬件的速度也一直在加快:不,浏览器的处理能力没有固定的上限。但是,对于特定版本的浏览器,当前对特定硬件有上限。

    如果你不定义你的硬件和浏览器是很难帮助你。另外,如果您不发布代码,没有人可以对Javascript的可能性能提出任何建议。即使它只是一个事件处理程序,如果它无限循环,或者如果它对每个元素都被调用,它也会大大减慢呈现过程。

        8
  •  0
  •   Damien Dennehy    16 年前

    不管RAM或CPU使用情况如何,预加载后文件的实际大小是多少?

        9
  •  0
  •   scunliffe    16 年前

    视情况而定。例如,IE在加载所有内容之前不会开始呈现表。因此,如果您有一个5000行的表,它需要加载所有5000行数据,然后再呈现其中的任何一行,因为其他浏览器一旦有部分数据就开始呈现,并且只需要随着表的增长调整一点(如果需要)。

        10
  •  0
  •   Gert Grenander Keiron Lowe    16 年前

    世界上真的没有理由在一个页面上发布整个巨大的数据集。如果要求向用户提供所有这些数据,那么应该将其导出到一个文件中,该文件可以由比浏览器更好的软件读取。

    相反,我建议您创建一个AJAX驱动的页面,让用户看到一部分数据,如果他们需要看到更多,您只需下载数据集的这一部分并替换页面上的当前数据集。这是分页。谷歌搜索就是一个很好的例子。

        11
  •  0
  •   PauliL    16 年前

    如果有任何限制,则取决于浏览器。但问题不在于限制,因为浏览器仍然显示页面。

    大表总是浏览器的问题。渲染一个大表需要很多时间。 .

    而且,你可能想

    如果使用Javascript将单行添加到一个大表中,那么浏览器很可能必须呈现 整张桌子 再一次。这就是为什么它变得如此缓慢。如果有较小的表,则只需要再次呈现一个较小的表。更好的是,如果一次加载一个子表而不是一行。

    但最有效的方法是将数据拆分为多个页面。用户可能也更喜欢这样。这就是为什么谷歌在每个页面上只显示这么多结果的原因。