2

データベースの結果をフェッチする JSP ページがあり、結果が 500 を超えるとロードに時間がかかります。これについていくつか質問があります:-

  1. このプロセスを最適化する方法はありますか? サーブレットで JDBC を使用して結果を取得し、JSP にレンダリングしています。

  2. 別の方法として、JSP の読み込み中に「読み込みバー」PNG 画像を表示し、読み込みが完了すると非表示にすることで、ユーザーが UI に夢中にならないようにします。では、JSP の初期化時に Javascript 関数をインスタンス化し、JSP のロードが完了したときにその関数を再度呼び出すにはどうすればよいでしょうか?

4

3 に答える 3

4

JavaScriptはクライアントで実行され、JSPコードはサーバーで実行されます。それらは同時に実行されないため、JavaScriptは役に立ちません。時間がかかる場合は、サーバーの問題を特定し、コードのプロファイルを作成する必要があります。

レコードなしで最初にページをロードしてみることができます。その後、Ajaxリクエストでコンテンツをロードできます。

于 2012-10-02T17:49:03.673 に答える
0
  1. ページングを検討できます。または、ユーザーが下にスクロールしたときに Ajax を使用して行を動的に追加します。

  2. 次の疑似コードを使用して、読み込み中にアニメーションを表示できます。

擬似コード:

<div id="loader">Loading / GIF animation</div>
<div id="result" style="display:none;">
  Lots of data.
  Should be flushed to the browser every now and then.
  This will take seconds...
</div>
<script type="text/javascript">
  $("#loader").hide();
  $("#result").show();
</script>
于 2012-10-02T19:46:47.093 に答える
0

応答フラッシュの使用: (JSP)

response.setHeader("Transfer-Encoding", "chunked");
response.getWriter().write("<html><head><script>alert('this will take awhile');</script></head>");
response.getWriter().flush();
...
/* long running JSP jdbc query and output */

AJAX またはより簡単に IFRAME を使用する:

<!-- home.jsp -->
<html><head></head>
<body>
    <div id="loading">Your content is loading</div>
    <iframe name="content" src="jdbcquery.jsp" onLoad="document.getElementById('loading').innerHTML=='Load Succeeded';">
    </iframe>
</body>
</html>
于 2012-10-02T18:10:46.603 に答える