列表框中的巨大数据(表)

时间:2012-04-03 10:13:28

标签: javascript html html5 zk dhtmlx

我想显示一个包含近2000万行的列表框(表)。 我怎么能这样做,内存使用率较低,而不是让我的服务器死掉(停止响应)。

即使你有任何理论上的想法,请分享(我会尝试实施)。 迫切需要解决方案。

我知道我无法一次加载所有行。每次滚动时我都需要从服务器询问新行。我试过了,但我的卷轴不够流畅。

谢谢&问候, 阿曼

4 个答案:

答案 0 :(得分:3)

为什么不只检索前100个条目,然后一旦客户端滚动到底部,你会追加另外100个条目,依此类推。

答案 1 :(得分:1)

答案 2 :(得分:0)

您可以使用http://books.zkoss.org/wiki/ZK Developer's Reference/MVC/View/Renderer/Listbox Renderer

public void render(Listitem listitem, Object data, int index)

首先,您可以实现渲染方式,以便从render方法中通过索引从手头的数据源获取元素。您可以使用标准缓存(如果Hibernate已就绪)或自定义编写缓存(如果不是EhCache)。

@Erik解决方案实施起来非常快。要添加你可以创建一个按钮,这样用户就会意识到加载更多记录需要花费一些时间,并且会想到是否真的需要加载更多。滚动可以使Listbox暂停一会儿。

并且始终对您将同时显示的最大记录数量设置上限 - 不要污染服务器的内存。

答案 3 :(得分:0)

对表值进行分页,并根据需要检索特定数量的记录。

使用可以使用 dataTable pluging对数据记录进行分页。

请注意,您可以使用此库以同步和异步方式检索数据