如何处理巨大的桌子?

时间:2010-04-26 13:53:27

标签: javascript html

我想向用户显示一个包含~500,000行的表。 该表应基于文件计算(即表在开头是已知的,并且不会改变)。 我想在内存性能方面构建此表的HTML文本并不是一个好主意。 那么我该如何构建这样的表呢?

我希望用户能够使用垂直滚动条滚动表格。是否有可能只在表格的可见部分建立?因此,我害怕看到延误。

使用服务器端编程而不是Javascript更好吗?

我不限于任何服务器端编程语言,所以任何建议都将不胜感激!

6 个答案:

答案 0 :(得分:5)

向用户发送前250行,向下滚动,可能在第200行,获取接下来的250行,附加到表格等等。

这是一种称为“Infinite scroll”的(ui)设计模式。

答案 1 :(得分:4)

一次向用户显示500,000行是一个坏主意。考虑其他选项:

  • 允许用户以CSV格式下载文件
  • 显示分页(仍然不是很有用)
  • 提供过滤机制(按日期等)以允许用户仅查看他们需要的数据

如果用户确实需要一次查看所有数据,那么在浏览器中查看它是最糟糕的方法之一 - 他们应该使用专门用于查看数据的工具,如Tableau

答案 2 :(得分:3)

使用ajax的地方的经典示例。

将javascript与服务器端脚本结合使用。

答案 3 :(得分:2)

这可能是服务器端分页的情况,我想说,可能与Ajax结合使用。一个包含500,000行的HTML表格会让许多浏览器崩溃。

您没有指定使用哪种服务器端技术。如果你更新你的问题,我相信人们会给你一些指示。

答案 4 :(得分:1)

试试这个: Clusterize.js 微型插件,可轻松显示大型数据集 https://clusterize.js.org/

答案 5 :(得分:0)

  

是否可以在飞行中仅构建表格的可见部分?

如果你制作了一个“假”卷轴(例如jquery slider),你可以检索表格的一部分而不是整个。