在单个 jsp 页面中加载大量记录的性能问题

Posted

技术标签:

【中文标题】在单个 jsp 页面中加载大量记录的性能问题【英文标题】:performance issue to load huge records in a single jsp page 【发布时间】:2012-05-24 09:31:09 【问题描述】:

我在 StringBuffer 中存储了大量(超过 20000 条)记录,以便在 jsp 中显示。我使用 StringBuffer 存储在 servlet 中,并将其作为请求属性传递给 jsp。问题是加载所有记录需要太多时间。加载后,浏览器变慢了。有没有在单个 jsp 页面中加载大量记录的最佳方法?或者如何快速从 StringBuffer 中读取数据?

【问题讨论】:

是否可以在一页加载中显示所有内容? 【参考方案1】:

我很确定问题不是来自 StringBuffer 或 JSP 生成的 html 代码。问题大概来自:

从数据库加载所有这些信息所需的时间 将巨大的 HTML 页面从服务器传输到客户端所需的时间。带宽不是无限的 浏览器解析和呈现一个巨大的 HTML 页面所花费的时间

无论如何,我非常怀疑用户能否在包含 20000 条记录的页面中找到他感兴趣的内容。提供一个搜索界面而不是显示所有内容,一次只显示 20、50 或 100 条记录的页面,几乎每个网站都这样做(想想谷歌:所有结果都不会显示在结果页面中,而只会显示少数第一个)。

【讨论】:

以上是关于在单个 jsp 页面中加载大量记录的性能问题的主要内容,如果未能解决你的问题,请参考以下文章

页面在 Safari Mac 中加载时间过长

EntityFramework - 仅从集合中加载最后一个子项(性能问题)

使用java在内存中加载2GB [关闭]

java中大量数据如何提高性能?

性能优化篇

在 Servlet/JSP 中加载属性文件 [重复]