我开始查看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}在运行时确定后如何)?
答案 0 :(得分:0)
您使用分页。所有编程使用延迟加载。 延迟加载是计算机编程中常用的设计模式,用于将对象的初始化推迟到需要它的点。如果正确和适当地使用它,它可以有助于程序操作的效率。与延迟加载相反的是急切加载。