2010-12-27 18 views
0

私は、マルチレベルは、次のマークアップでドロップダウンメニューを構築するためにJavaScriptとCSSを使用します。のJSPキャッシュの問題

<ul> 
    <li>menu item 1</li> 
     <ul> 
     <li><a href="#">sub menu menu item 1</a></li> 
     ................. 

このマークアップは、データベースからメニューデータをロードするカスタムJSPタグ<mui:menu .../>によって生成されます。

私は私のJSPページは、このように振る舞うことを願って

:そうでない場合は、データベースから読み込むだけ

  • ブラウザのキャッシュを使用して、メニューデータは、私がページを訪問した最後の時間以降に変更されていない場合

    • ...

    どうすればいいですか?私はキャッシュメカニズムについて詳しくは分かりません。

  • 答えて

    2

    クライアントキャッシュがあるということは、キャッシュに保存されているものがまだ新鮮である(まだ期限切れでない)場合、ブラウザがコンテンツのサーバーに移動しないことを意味します。メニューのブラウザのキャッシュで再生したい場合は、start learning about itにする必要があります。

    しかし、私はあなたがこれに正しい方法で近づいていないと思います。メニューはJSPカスタムタグによって生成されます。 JSPはサーバ上で実行されるため、<mui:menu .../>タグを含むリソースを要求するたびに、タグはデータベースからデータを取得します。

    このタグを別のリソースに入れておけば、クライアントからのGETを変更することができます(ブラウザが結果をキャッシュできるようになります)。HTTP 304 Not Modifiedと応答して、キャッシュされた値はまだ有効ですが、事実はですが、クライアント側ではなくサーバー側でキャッシュを処理する方が良いです

    JSPタグはキャッシュを処理し、何か変更された場合にのみデータベースに移動します。

    ちょうど私の2セント!

    +0

    おかげで見つけることができます。私は帯域幅を節約するためにキャッシュすることができるすべてをキャッシュしたいと思いますが、キャッシュのメカニズムについて詳しく知る必要があると思います。 – idiotgenius

    1

    OSCacheには、生成されたメニューをキャッシュするのに役立つJSPタグがあり、コンテンツブロックを簡単に制御できます。

    JSTLを使用して、私の特定のケースのために良い解決策ではないようですdpb.so OSCacheのはhttp://www.opensymphony.com/oscache/