2010-04-26 267 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),您可以檢索部分表格而不是整個表格。