2010-08-18 63 views
2

我想創建一個表來格子化一些數據。該表可以列出很多數據(100K +行)。所以我想要做的是一次顯示20行,也許有100行緩衝區。當用戶在網格上向下滾動時,它會通過ajax加載額外的行嗎?我已經看到了這一點,但我真的不知道如何實現?如何創建虛擬卷軸?

回答

1

這完全像你描述的。

想象一下jQuery appending<tr>'s到<table>。這很簡單。

服務器端
腳本和SQL限制

// where ? represents entry_num that will be passed by jQuery 
SELECT * 
FROM table_x 
LIMIT ?, 20 

客戶端
jQuery的把它獲取新的項目到表調用行。

// server side will in check for entry number to give back the proper rows 
$.ajax({ 
    url: "/getRows", 
    data: "entry_num="+num, 
    cache: false, 
    success: function(html){ 
    $("#table").append(html); 
    } 
}); 
+0

謝謝,這給了我一些想法。 – 2010-08-18 17:44:05

0

退房的jqGrid:http://www.trirand.com/jqgridwiki/doku.php?id=wiki:features

它支持「懶」分頁,但我敢肯定它可以進行修改,以做整個滾動的東西。

+0

感謝您的建議,我確實看過這個,但是我發現文檔在嘗試根據我的需求進行定製時很差,所以我想知道如何自己做一個簡單的文檔來做我所需要的。 – 2010-08-18 17:46:17

0

虛擬卷軸的UX(用戶體驗)缺點在於,您沒有向用戶提供有關捲動區域總高度的視覺反饋。

此外,用戶可能很難/不可能快速移動到數據集中的相對點。 - 例如,列表按字母順序排序,用戶想要跳到列表的中間或末尾。 - 在虛擬卷軸中可能很難做到。

大型數據集中的分頁視圖的替代方法適用於這兩個問題。檢查出YUI Data table widgetcommunity

2

我發現SlickGrid是一個很棒的jQuery插件,可以像使用自適應虛擬滾動一樣處理這種海量數據集。它也非常漂亮,還有許多其他高級功能。