JSP / JSTL如何提高使用c:forech

时间:2016-11-24 01:04:08

标签: java html jsp spring-mvc jstl

我开始查看Web应用程序中存在性能问题的页面。这是一个使用JSP的Spring MVC应用程序。 有一个部分构建如下:

 <c:forEach items="${people}" var="person">
     //A number of <form:input>s bound to "person" in here
 </c:foreach>

随着“人”数量的增加,这似乎变得非常缓慢。迭代次数甚至不必太高,因为它很慢。我可以看到页面逐个加载每个输入块。

我正在试图确定瓶颈是什么,我认为这似乎只是for循环的本质很慢。

如果我执行以下操作:

<div with some style><input></div>
//Copy this 8000 times

页面渲染速度非常快。 但是以下内容:

<c:forEach var="i" begin="1" end="8000">
<div with some style><input></div>
</c:foreach>

缓慢渲染。

我想我有点困惑,因为它似乎是将每次迭代发送到客户端进行呈现而不是构建HTML然后立即发送所有内容? (也许我错了?)

有没有办法让这个负载更快?为JSP设置一些预编译会更快(虽然我不确定自从$ {people}在运行时确定后如何)?

1 个答案:

答案 0 :(得分:0)

您使用分页。所有编程使用延迟加载。 延迟加载是计算机编程中常用的设计模式,用于将对象的初始化推迟到需要它的点。如果正确和适当地使用它,它可以有助于程序操作的效率。与延迟加载相反的是急切加载。