2010-04-26 529 views
1

我想向用户显示一个包含〜500,000行的表格。 该表应根据文件进行计算(即该表在开始处已知,并且不会更改)。 我猜想在内存性能方面,构建此表的HTML文本不是一个好主意。 那么我该如何建立这样的表格?如何处理巨大的表格?

我希望用户能够使用垂直滚动条滚动表格。是否有可能只在桌面上看到可见的部分?因为这个,我恐怕会看到延误。

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

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

+0

一个半万行不健全,非常好用的 - 通常当我有这个数据集大型我试图找到方法来组和汇总数据(没有办法我正在阅读500,000个数据),通常我会在Excel或其他应用程序中执行此操作。用户如何在数据集中找到任何内容?你可以给他们发送一个CSV文件,或者某种总结报告吗? – FrustratedWithFormsDesigner 2010-04-26 13:57:50

+3

看到这个类似的问题一些很好的解决方案 - http://stackoverflow.com/questions/2402953/javascript-data-grid-for-millions-of-rows – Anurag 2010-04-26 17:06:58

+0

谢谢。好的讨论! – 2010-04-26 23:57:14

回答

3

使用ajax的经典示例。

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

5

向用户发送第一个250-ish行,当他向下滚动时,可能在第200行,获取接下来的250行,追加到表等等。

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

2

这真是服务器端分页的情况,我想说,也许与Ajax结合使用。一个包含500.000行的HTML表会导致很多浏览器崩溃。

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

4

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

  • 允许用户下载文件为CSV
  • 显示分页(仍然不是非常有用)
  • (按日期等)提供过滤机制,以使用户只能看到数据他们需要

如果用户真的需要看到所有的数据一次,然后在浏览器中查看它的做最糟糕的方式之一 - 他们应该使用的是专门用于查看数据制作的工具, 喜欢 Tableau

+1

对于人类来说,+1,500000行太多了。充其量,你只是让他们自欺欺人地认为他们已经看到了一个体面的数据样本。另外一个提及分页的+1也不是一个好的答案 – 2010-04-26 14:02:35

+1

为了支持这一点:如果用户足够关心数据以便在每一行中浏览一秒钟,就会花5天时间才能到达底部。他们很可能对特定行感兴趣(然后添加分页和过滤机制,认为Google搜索结果)或汇总数据(考虑Wolfram Alpha图表和数字)。 – Douglas 2010-04-26 14:02:36

0

是否有可能在飞行中只建立表格的可见部分?

如果您构建“虚假”​​滚动(例如jquery slider),您可以检索部分表格而不是整个表格。