rich的动态分页:dataTable / rich:具有大型数据集的datascroller

时间:2011-02-02 10:55:48

标签: java multithreading jsf richfaces

我目前有一个Richfaces dataTable绑定到包含所有数据的支持bean。此表绑定到Richfaces数据滚动条。

然后,用户可以在数据之间输入滚动。

还有一个文本框,可根据输入的文本动态更新显示给他们的数据表结果。它在keyUp事件上重新获取dataTable和datascroller。

它必须首先从许多数据库表中提取所有数据。当用户向服务器提交正常的post请求时,将提取此数据,并且此请求的结果将用于所有后续与Ajax相关的查询(结果保存为对象列表,不再进行数据库调用)。

我遇到的问题是数据集有时可能很大,有100,000个记录。 这会导致对服务器的初始请求花费很长时间。

我正在考虑的一个可能的解决方案是在一个线程中仅撤回少量数据以用于初始用户端口请求。然后,这些数据可以显示在数据表中,而主线程在后台工作,将大量数据拉回来。

这可行吗?当主线程撤回新数据时,是否可以更新我的datatable / datascoller?会不会很难?

已经查看了数据库和查询优化,因此不再有任何重要的改进。

提前致谢(我知道这可能不是一个容易回答的问题)

2 个答案:

答案 0 :(得分:2)

好像你需要Seam Application Framework's Query object正在提供的内容。

如果你不想使用Seam,你既可以查看源代码,也可以复制它们的工作方式,只是窃取了这个想法。

基本上您需要做的是每次用户按next, previous, first, last etc

时获取给定的结果集

答案 1 :(得分:2)

实施SerializableDataModel以保存sorting and paginating的数据。

相关问题