6

クライアントがアプレットのバージョンを永遠にキャッシュしているように見えるケースがあります。<param name="cache_version">タグ内でタグを正しく使用している<object>、またはそう考えています。のバージョン文字列から7.1.0.40移行7.1.0.42したところ、クライアントの約半分のみがダウンロードされました。

クライアントが実行している JRE のバージョンは問題ではないようです。1.4、1.5、および 1.6 でこの問題が発生しているのを見てきました。

明示的なキャッシュ バージョンの経験がある人はいますか? cache_archive代わりにの "Last-Modified" や "Content-Length" の値 ( Sun のサイトによる)に依存する方が確実に (速度を無視して) 動作しますか?

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

<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>
4

3 に答える 3

9

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

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

于 2008-09-15T21:02:57.577 に答える
2

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

Start -> Control Panel -> Java -> Temporary Internet Files[View]
于 2013-02-27T13:34:37.157 に答える
0

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

于 2012-03-06T10:55:38.163 に答える