1

ユーザーがオプションで検索を選択できる「検索」ページがあります。これらのオプションには、データベースによって埋められる多数のドロップダウンが含まれます。これらのドロップダウンは変更される可能性がありますが、めったに変更されません (多くても 1 か月に 1 回)。

現在、これらのドロップダウンを埋めるためにページをロードするたびに、ページがデータベースにヒットし、ページのロードは約 3 ~ 4 秒です。ページサーバー側をキャッシュし、jsp のみを 1 時間ごとに処理するようにします。入ってくる要求はすべて、処理された jsp の最新の出力を取得する必要がありますが、サーバーがそれを再処理することはありません。つまり、ページの更新を get メソッドから常に分離して、ユーザーがページを取得するために 0.5 秒以上待つ必要がないようにしたいのです。

この問題を解決するために、aspでできるようにサーバー側で jsp ページをキャッシュすることは可能ですか ( Is it possible to cache an asp page on the server side? )。この問題を解決するために一般的に使用されるアプローチは何ですか? 解決策を思いつくことはできますが、一般的なベスト プラクティスが既に開発されている場合は、車輪を再発明したくありません。

ありがとう!

4

3 に答える 3

2

サーバー側のjspキャッシングについては知りませんが、データベースの結果をキャッシュすることもできます。これはおそらく最も遅い部分だからです。

私は常にehcacheを spring および aop と一緒に使用して、Java メソッドの結果の非侵入型キャッシュを実装しています。

于 2012-07-16T13:28:04.100 に答える
1

JSTL はc:setどうですか?メニューキャッシュの例:

<c:if test="${empty JSPCACHE_menu}">
  <c:set var="JSPCACHE_menu" scope="session">
    <ul id="user-menu">...</ul>
  </c:set>
</c:if>
${JSPCACHE_menu}
于 2014-12-16T19:10:11.417 に答える
0

春を使用している場合は、春のキャッシュの抽象化も救助用だと思います。コントローラーメソッドといくつかのサービスメソッドの出力をキャッシュしているのと同じ種類のシナリオでこれを使用しました。スプリング キャッシュは、クロス カットの問題としてキャッシュを有効に使用します。

于 2012-07-16T14:14:39.413 に答える