繁体   English   中英

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

[英]How can I improve the performance of the RichFaces ScrollableDataTable control?

首先,一点背景:

我正在使用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相当的响应时间。 我同意扎克的看法 - 分页是正确的答案。

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

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

确保您的rich:dataTable设置了rows属性,并且 - 如果您正在进行任何列过滤 - 请确保日期表还具有属性reRender="paginator" ,其中paginator是您的rich:datascroller

这听起来像是为了呈现表而生成的javascript中的错误。 您是否在不同的浏览器中尝试过该页面? 您使用哪种JSF实现(RI或MyFaces或其他)?

很久以前我遇到过类似的问题,最后编写了一个applet来显示使用livescript与页面交互的数据。 我的表现问题与你所看到的一样。 客户端花了30多秒来渲染表数据,服务器在不到2秒的时间内完成了我的响应。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM