2016-11-24 32 views
0

パフォーマンスに関する問題があるWebアプリケーションのページを調べ始めました。 JSPを使用したSpring MVCアプリケーションです。 次のように構築されている部分があります:JSP/JSTL C:forechを使用する速度を向上させる方法

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

これは「人」の数が大きくなると、非常にゆっくりとレンダリングするようです。反復回数は、それが遅くなるまでにはそれほど高くなくてもよい。私は入力の各ブロックを1つずつロードするページを見ることができます。

私はボトルネックが何であるかを調べようとしていました。私はそれが遅い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

jspsを使用しないで、ajxコールからの遅延ロード – NimChimpsky

+0

jspから、特にjstlから移動しました。 – ScanQR

+0

ええ、私は確かに、クライアント側のフレームワークは、これらの日(残念ながら今のオプションではない)行く方法です。しかし、人々はJSP/JSTLレンダリングでこのようなことをしているに違いありません。私は、ページが非常にゆっくりとレンダリングするフィールドの人数分の6-10だけを表示しているかのように、何かが間違っていなければならないと思います。 – Luke

答えて

0

ページングを使用します。すべてのプログラミングは遅延ロードを使用します。 遅延読み込みは、オブジェクトの初期化を必要な時点まで遅らせるために、コンピュータプログラミングで一般的に使用されるデザインパターンです。適切かつ適切に使用されれば、プログラムの運用の効率化に貢献できます。怠惰な読み込みの反対は熱心な読み込みです。

関連する問題