如何提高RichFaces ScrollableDataTable控件的性能?

Chr*_*all 5 jsf richfaces

首先,一点背景:

我正在使用ScrollableDataTable显示一个包含288行和8列(2304条记录)的数据集,性能还有很多不足之处.与使用DataTable控件渲染相同数据时的7秒相比,重新启动控件的AJAX请求需要将近20秒才能完成.

通过Servlet过滤器和JavaScript捕获的度量标准表明,几乎所有的处理时间都花费在客户端.在19.87秒的请求中,在服务器上花费了3.87秒...用于查询和排序数据的时间少于0.6秒.

切换到DataTable控件将请求,响应和渲染周期缩短到我在ScrollableDataTable上看到的1/3,但也删除了几个重要的功能.

现在的问题是:

有没有其他人遇到过ScrollableDataTable的性能问题?使用固定列和双轴滚动在JSF/RichFaces中呈现大量表格数据的最有效方法是什么?

更新:

我们最终编写了一个自定义控件.完全控制渲染的组件和生成的JavaScript允许我们实现与DataTable相当的响应时间.我同意扎克的看法 - 分页是正确的答案.

Zac*_*ese 1

瓶颈很可能出现在 JSF 生命周期的“渲染响应”阶段。它试图一次为视图渲染太多组件。

我的建议是使用分页。它应该会显着提高您的性能,因为它一次渲染视图的较小部分。

确保您设置rich:dataTablerows属性,并且 - 如果您正在进行任何列过滤 - 确保日期表也具有属性reRender="paginator"where paginator is your rich:datascroller