Applet Java memorizzata nella cache per sempre, senza scaricare la nuova versione?

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

  •  09-06-2019
  •  | 
  •  

Domanda

Abbiamo un caso in cui i client sembrano memorizzare eternamente nella cache le versioni degli applet.Stiamo facendo uso di <param name="cache_version"> taggare correttamente all'interno del nostro <object> tag, o almeno così pensiamo.Siamo passati da una stringa di versione di 7.1.0.40 A 7.1.0.42 e questo ha attivato un download solo per circa la metà dei nostri clienti.

Non sembra avere importanza quale versione di JRE è in esecuzione sul client.Abbiamo visto persone avere questo problema su 1.4, 1.5 e 1.6.

Qualcuno ha esperienza con le versioni cache esplicite?Funziona in modo più affidabile (ignorando la velocità) affidandosi invece a the cache_archivei valori "Last-Modified" e/o "Content-Length" (come da Il sito di Sun)?

Per tua informazione, il blocco oggetto si presenta così:

<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>
È stato utile?

Soluzione

Sfortunatamente, versioni diverse del plug-in Java hanno comportamenti di memorizzazione nella cache diversi.L'impostazione delle intestazioni HTTP Cache-Control e Last-Modified è la soluzione ideale, ma funziona solo con le versioni più recenti della JRE.

L'unica soluzione GARANTITA che funzioni è rinominare i jar dell'applicazione quando le loro versioni cambiano (abbiamo riscontrato uno strano comportamento di memorizzazione nella cache quando abbiamo provato altri trucchi come l'aggiunta di stringhe di query in base alle date dei file).Questo non è così difficile da fare se si dispone di un sistema di distribuzione adeguatamente automatizzato.

Altri suggerimenti

È possibile rimuovere l'applet dalla cache Java utilizzando Java Control Panel.
Ad esempio, su Win XP

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

Come da questo link , lo stesso file jar non deve essere elencato nei parametri "archive" e "cache_archive".In tal caso, il file JAR viene memorizzato nella cache utilizzando la cache nativa del browser.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top