Java アプレットは永久にキャッシュされ、新しいバージョンはダウンロードされませんか?

StackOverflow https://stackoverflow.com/questions/66875

  •  09-06-2019
  •  | 
  •  

質問

クライアントがアプレットのバージョンを永久にキャッシュしているように見えるケースがあります。を活用しています。 <param name="cache_version"> 私たちの中で正しくタグ付けしてください <object> タグ、またはそう思います。のバージョン文字列から出発しました 7.1.0.407.1.0.42 これにより、クライアントの約半数のみがダウンロードを開始しました。

クライアントが実行している JRE のバージョンは関係ないようです。1.4、1.5、1.6 でこの問題が発生している人を確認しています。

明示的なキャッシュバージョンを使用した経験のある人はいますか?代わりに、 cache_archiveの「Last-Modified」および/または「Content-Length」値(による) サンのサイト)?

参考までに、オブジェクト ブロックは次のようになります。

<object>
  <param name="ARCHIVE" value="foo.jar">
  <param name="CODE" value="com.foo.class">
  <param name="CODEBASE" value=".">
  <param name="cache_archive" value="foo.jar">
  <param name="cache_version" value="7.1.0.40">
  <param name="NAME" value="FooApplet">
  <param name="type" value="application/x-java-applet;jpi-version=1.4.2_13">
  <param name="scriptable" value="true">
  <param name="progressbar" value="true"/>
  <param name="boxmessage" value="Loading Web Worksheet Applet..."/>
</object>
役に立ちましたか?

解決

残念ながら、Java Plug-In のバージョンが異なると、キャッシュ動作が異なります。Cache-Control および Last-Modified HTTP ヘッダーを設定することは理想的な解決策ですが、次の環境でのみ機能します。 最新バージョン JREの。

確実に機能する唯一の解決策は、バージョンが変わったときにアプリケーション jar の名前を変更することです (ファイルの日付に基づいてクエリ文字列を追加するなどの他のトリックを試みると、奇妙なキャッシュ動作が発生することが確認されています)。適切に自動化された展開システムがあれば、これを行うのはそれほど難しいことではありません。

他のヒント

次を使用して Java キャッシュからアプレットを削除できます。 Java Control Panel.
たとえば、Win XP の場合

Start -> Control Panel -> Java -> Temporary Internet Files[View]

とおり このリンク 、同じ jar ファイルを int "archive" および "cache_archive" パラメータにリストすることはできません。その場合、JAR ファイルはネイティブ ブラウザ キャッシュを使用してキャッシュされます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top