首先,一点背景:
我正在使用 ScrollableDataTable 显示具有 288 行和 8 列(2304 条记录)的数据集,性能还有很多不足之处。重新呈现控件的 AJAX 请求需要将近 20 秒才能完成,而使用 DataTable 控件呈现相同数据时需要 7 秒。
通过 Servlet 过滤器和 JavaScript 捕获的指标表明,几乎所有的处理时间都花在了客户端上。在 19.87 秒的请求中,3.87 秒花费在服务器上……查询和排序数据花费的时间不到 0.6 秒。
切换到 DataTable 控件将请求、响应和呈现周期减少到我在 ScrollableDataTable 中看到的 1/3,但也删除了几个重要功能。
现在的问题是:
是否有其他人遇到过 ScrollableDataTable 的性能问题?在具有固定列和两轴滚动的 JSF/RichFaces 中呈现大量表格数据的最有效方法是什么?
更新:
我们最终编写了一个自定义控件。对渲染组件和生成的 JavaScript 的完全控制使我们能够实现与 DataTable 相当的响应时间。不过,我同意 Zack 的观点——分页是正确的答案。