2012-04-11 13 views
2

Javaアプレット内でのキャッシュにはどのようなアプローチがありますか?Javaアプレットでのキャッシュ

ほとんどのブラウザでは、アプレットを構成する.jarがキャッシュされることがあります。

  • これは、アプレットが使用する依存性のあるジャーナブルケースの場合ですか?
  • 実行時にアプレットがリモートURLからリソースをロードする場合、これは がブラウザによってキャッシュされないと想定するのは正しいですか? がブラウザによってキャッシュされていない場合、ローカルストレージに書き込むことでキャッシュ を実装できますか?

答えて

3

これは、アプレットが使用する依存性のあるジャーナブルケースの場合ですか?

はい、依存JARがキャッシュ可能であると仮定します。

実行時にアプレットがリモートURLからリソースをロードする場合、これがブラウザによってキャッシュされないと想定するのは正しいですか?

おそらくはい。 JVMはおそらくリモートサーバーに直接接続し、ブラウザはHTTPリクエストを見ません。さらに、JVMはおそらくブラウザのキャッシュ構成や場所を認識しません。ただし、これはすべてプラットフォームに依存します。

JVMが独自のHTTPキャッシュを実装することも可能です。 AFAIK、現在の世代のOracle JVMはそうではありませんが、将来のものは考えられません。

ブラウザでキャッシュされていない場合は、ローカルストレージに書き込むことでキャッシュを実装できますか?

アプレットが署名されていて、ユーザーが署名を受け入れた場合のみ。アプレットは通常、ローカルストレージを読み書きできません。 (怠惰なダウンロードとアップデートのプログラム制御を含む)

..automatic更新を...

注:

リソースのキャッシュをより良く制御するために
+0

答えをいただきありがとうございます。ランタイムキャッシングの動作を明確にするために、Javaアプレットが独自のHTTPリクエストを作成してイメージをロードすると、ブラウザがロードするリソースのように扱われるか、ブラウザが回避され、JVMがリクエストを行います'直接'? –

+0

JVMサンドボックスでアプレットがそれを許可する場合、ブラウザはリクエストが行われたことを認識しないと思います。私はまた、JVMはブラウザのキャッシュを直接使用することができないと思う...どのように組織されているのか、それがどこにあるのかを知ることができないからです。 –

+0

清算をありがとう。 2番目のポイントを「はい」に修正して、正しい答えとしてマークすることができます。 –

2

、提供していますJava Web Startを使用してアプレットを配備それはJWSアプリです。 JNLP APIのプログラムアップデートを呼び出すために信頼される必要はありません。

0

How to disable http caching in appletURLConnection JavaDocによると、プログラムでリソースを要求するときにキャッシュが有効になります。

+0

'setUseCaches'は**キャッシュの使用を許可していることに注意してください。私は外部のHTTPプロキシでキャッシュすることを指していると思います。ただし、ブラウザのキャッシュやJVM固有のキャッシュを使用するかどうかは自由に実験してください。 –

+0

うん、私はいくつかの経験的な切れ味が必要と思う:) –