如何创建虚拟卷轴?

时间:2010-08-18 17:14:43

标签: php javascript jquery ajax

我想创建一个表来网格化一些数据。该表可以列出大量数据(100K +行)。所以我想要做的是一次显示20行,可能有100行缓冲区。当用户向下滚动网格时,它会通过ajax加载到额外的行中?我已经看到了这个,但我真的不知道如何实现这一目标?

4 个答案:

答案 0 :(得分:2)

我发现SlickGrid是一个很棒的jQuery插件,可以通过使用自适应虚拟滚动处理这种类型的海量数据集,就像你描述的那样。它也很漂亮,还有许多其他高级功能。

答案 1 :(得分:1)

这与你描述的完全一样。

想象一下jQuery appending <tr><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);
  }
});

答案 2 :(得分:0)

查看jQGrid:http://www.trirand.com/jqgridwiki/doku.php?id=wiki:features

它支持“懒惰”分页,但我确信可以修改它以完成整个滚动操作。

答案 3 :(得分:0)

虚拟卷轴的UX(用户体验)缺点是您没有向用户提供有关滚动区域总高度的视觉反馈。

另外,用户快速移动到数据集中的相对点可能很棘手/不可能。 - 例如,列表按字母顺序排序,用户想要跳转到列表的中间或末尾。 - 在虚拟滚动条中可能很难做到。

对大型数据集的分页视图的替代方案适用于这两个问题。查看YUI Data table widgetcommunity