【问题标题】:Are using div tags faster than using table tr and td tags for tabular data of huge size?对于巨大的表格数据,使用 div 标签是否比使用 table tr 和 td 标签更快?
【发布时间】:2020-01-29 07:19:52
【问题描述】:

我通过访问 postgres 数据库的 php 脚本从远程 aws ec2 服务器加载了一个巨大的表。 目前,表中有 2000 行 20 列,在所有查询优化后加载大约需要 2 分钟,并使用多维 php 数组通过单个查询来存储所有成员的数据,而不是时不时地查询数据库。 2000 个用户。

我能够将加载时间从 5 分钟减少到 2 分钟。

我的问题是,UI 是否也需要优化?传统的表格标签过时了吗?哪种方式最好?

假设我已准备好所有数据。如果我需要将它们立即大量显示出来,最好的方法是什么?

我不太熟悉 HTML 或 CSS 甚至 UI 测试。

【问题讨论】:

  • 我的问题是,UI 是否也需要优化? 这取决于您是否使用了多个嵌套循环,它可能会导致大量 cpu 负载。 * 传统的表格标签过时了吗?*,没有它的still within HTML5,没问题。 加载大约需要 2 分钟是整个页面加载还是查询本身?您可能会遇到未优化的 js/css,例如在客户端编译较少。
  • 也许你可以尝试批量查询你的结果。这可能会有所帮助:stackoverflow.com/questions/49676777/…
  • @BagusTesa 我在一个循环中使用 printf,该循环迭代 2000 次,一次用于打印表格的每一行。我已经将 sql 查询结果中的所有数据存储在 php 多维数组中。当我加载 php 页面时,最初为 5 秒,将没有输出。然后,它会突然开始从顶部填充表格。如果在加载时向下滚动,您可以看到此时它已加载了多少行。因此,实际上是 UI 占据了加载时间的主要部分。 Gosi,我已经在 PHP 数组中查询和存储我的结果。只需 5 秒
  • 当我加载 php 页面时,最初是 5 秒,没有输出。然后,它会突然开始从顶部填充表格。如果您在加载时向下滚动,您是否有一些 ajax 进行表格渲染?你能检查一下浏览器控制台的网络标签来确定吗?
  • 我不使用任何 ajax。纯PHP。没有 API,什么都没有。我将 postgreSQL 查询的所有输出存储到单独的二维数组中,其中的键对应于用户及其属性。这些值将是 SQL 查询和 PHP 脚本中的单个结果和计算。完成所有这些之后,我才开始 foreach 循环以逐一打印行及其对应用户 ID 的值。

标签: php html css sql html-table


【解决方案1】:

HTML 表格一点也不过时! :) 它们是显示数据表的最快、最符合语义的方式。

如果您需要进行微优化,我推测使用固定列宽(避免动态调整大小)可能是最快的。其他想法:在 JS 中将数据“流式传输”到页面上(避免重新渲染),使用 PHP 的输出缓冲函数,或者可能考虑导出/导入 CSV 以管理庞大的数据集? ;)

【讨论】:

    【解决方案2】:

    在这种情况下,UI 和 HTML 优化不会在加载时间方面产生真正的影响

    我建议您测量网页加载完整表格所需的时间,但逐步。将“echo”命令放入你的代码中,将整个过程划分为小任务,然后你会看到在时间方面你需要付出更多的努力。

    我的程序需要多少时间...

    • ...连接到我的远程服务器?
    • ...从我的远程服务器接收原始数据?
    • ...在下一步中处理演示文稿的数据?
    • ...在网页上呈现处理后的数据?

    然后您将看到最后一步,即与 UI 相关的步骤,并不那么相关(例如 PHPMyAdmin 可以在几秒钟内向您显示数千行)。

    无论如何,HTML 表格将是最快的方式,因为它们比 DIV 更“简单”。尽量预先配置所有的 CSS,这样你的浏览器就不需要计算它了!

    【讨论】:

      猜你喜欢
      • 2011-10-17
      • 1970-01-01
      • 2011-04-30
      • 1970-01-01
      • 2017-11-05
      • 2012-10-30
      • 1970-01-01
      • 2013-03-23
      • 2017-08-13
      相关资源
      最近更新 更多