在jsp中显示巨大的arraylist

时间:2009-08-31 06:42:37

标签: java performance jsp records

我在一个arraylist中有15000条记录,每条记录大小约为2MB。我以最有效的方式在jsp页面上显示此列表。

请建议最好的方法。

我无法在服务器端过滤数据。用户需要立即在jsp页面上记录所有记录。

提前致谢。

3 个答案:

答案 0 :(得分:7)

直截了当的答案是,您无法在简单的JSP中呈现15,000 * 2Mb记录。这相当于一个30Gb的网页(+格式化),它必须由传输到浏览器的服务器呈现,然后由浏览器缓冲和显示。这根本行不通。首先,用户的计算机将没有30Gb的RAM。

这意味着您将不得不实施一个更复杂的解决方案,在该解决方案中,您为用户提供某种表或列表查看器,允许用户分页或滚动15,000条记录,而无需将整批内容发送到用户的浏览器。老派的方法是在服务器端实现列表视图/滚动逻辑和渲染。 Web 2.0方法是使用一些Javascript工具包在客户端实现显示和滚动,使用AJAX调用在用户查看时从服务器获取记录。

答案 1 :(得分:0)

我不知道是否有一种真正有效的方式来显示那么多记录但你可能在jQuery Grid有一个列表(Demo页面有一个示例在Advance / Search大集下用于显示和搜索12000条记录)。 或者,任何其他JavaScript网格(例如来自ExtJS的JavaScript网格)可能会有所帮助。

答案 2 :(得分:0)

flush()您的响应编写器定期向客户端发送数据。

确保您不使用里程碑高的表或类似物,这需要浏览器处理许多对象才能进行布局。

告诉用户使用现代浏览器。我相信Opera在这些页面上做得很好。