后台返回数据量较大页面显示太慢就如何优化

xgw2001 2008-09-24 09:44:58
在下面代码中显示返回的“allStaList”,其中有600多条数据,显示时间需等待16秒左右,有什么好的处理方法吗?
<logic:notEmpty name="staDisplayForm" property="allStaList">
<logic:iterate id="sta" indexId="index" name="staDisplayForm" property="allStaList">
<%
String co = "";//行间颜色
if ((index%2) == 0) co = "#D0E4EF";
else co = "#FFFFFF";
%>
<tr bgcolor=<%=co %> align="center">
<td><bean:write name="sta" property="stName"/></td>
<td><bean:write name="sta" property="strStaType"/></td>
<td><bean:write name="sta" property="district"/></td>
<td><bean:write name="sta" property="jd"/></td>
<td><bean:write name="sta" property="wd"/></td>
<td><c:choose>
<c:when test="${sta.isShow == 1}">
<input type="checkbox" onclick="UpdateSetup(this)" value="1_<bean:write name='sta' property='stId'/>" checked="checked"/>
</c:when>
<c:otherwise><input type="checkbox" onclick="UpdateSetup(this)" value="1_<bean:write name='sta' property='stId'/>" /></c:otherwise>
</c:choose></td>
<td><c:choose>
<c:when test="${sta.isShowRep == 1}">
<input type="checkbox" onclick="UpdateSetup(this)" value="2_<bean:write name='sta' property='stId'/>" checked="checked"/>
</c:when>
<c:otherwise><input type="checkbox" onclick="UpdateSetup(this)" value="2_<bean:write name='sta' property='stId'/>"/></c:otherwise>
</c:choose></td>
</tr>
</logic:iterate>
</logic:notEmpty>
...全文
5028 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
ycnanevol 2008-09-27
  • 打赏
  • 举报
回复
1,servlet init时数据加载到内存
2,在js里利用ajax
3, 利用分页,客户端请求的时候可以不一次显示全部数据
比如一次请求传2页数据,1页数据hidden
watermarkmms 2008-09-27
  • 打赏
  • 举报
回复
做索引或者优化你的sql........才600多行就这样,绝对是后台代码或者数据库设计的问题
一页5000条的分页都做过,也没你那样的
mengweilil 2008-09-26
  • 打赏
  • 举报
回复
分页,数据库支持

很简单(hibernate、jpa的query都支持)
cyshenfh 2008-09-26
  • 打赏
  • 举报
回复
加索引 或者用分页
tyhAaron 2008-09-26
  • 打赏
  • 举报
回复
如果学过ajax当然用ajax好咯 不然还是用分页吧
hiruko 2008-09-26
  • 打赏
  • 举报
回复
现在流行的做法就是用ajax
zhangfan545755 2008-09-26
  • 打赏
  • 举报
回复
如果可以用缓存啊,
timeport 2008-09-24
  • 打赏
  • 举报
回复
分页
zz2617436 2008-09-24
  • 打赏
  • 举报
回复
我有一个页面需要提取1000多条的,也没有你那么慢啊,最多3秒
因为是在不同的服务器提取的数据,然后要在页面可以进行更改,可以进行批量添加入本地库,所以我也没有分页
kongsufeng1 2008-09-24
  • 打赏
  • 举报
回复
同意分頁
  • 打赏
  • 举报
回复
600 余条数据全部加载进来,可以这么想吧,有多少人会一条一条地全部看完呢?
也许看个十几条就关掉,如果是这样的话还有 500 多条加载进来完全是无用功。
所以就应该采用分页。

大数量的分页应采用 SQL 分页形式,也就是说第 1 页时只选第 1~20 条记录,
当点下一页或第 2 页时,再重新查询数据库,这时使用 SQL 选取第 21~40 条
记录。
  • 打赏
  • 举报
回复
嗯,分页吧,每页显示 20 条就快了。
hcz202202 2008-09-24
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 feng8008 的回复:]
1.生成静态页
2.做索引
3.每页显示是少点
[/Quote]
分页比较简单易行
hanbb 2008-09-24
  • 打赏
  • 举报
回复
大哥,俺求你了,分个页吧
实在不行就在一个页里分成几部分显示吧
shuai45 2008-09-24
  • 打赏
  • 举报
回复
allStaList中有600条数据?
难道页面显示中没有分页?
c2one 2008-09-24
  • 打赏
  • 举报
回复
用ajax,先打开页面再异步加载上去``用户就不会坐在那看着白的一片了
feng8008 2008-09-24
  • 打赏
  • 举报
回复
1.生成静态页
2.做索引
3.每页显示是少点

81,091

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧