Applet Java mis en cache pour toujours, ne pas télécharger la nouvelle version?

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

  •  09-06-2019
  •  | 
  •  

Question

Nous avons un cas où les clients semblent mettre éternellement en cache des versions d'applets. Nous utilisons la balise < param name = " cache_version " > correctement dans notre balise < object > , du moins que nous le pensons. Nous sommes passés d’une chaîne de version de 7.1.0.40 à 7.1.0.42 , ce qui a déclenché un téléchargement pour seulement environ la moitié de nos clients.

La version du JRE exécutée par le client ne semble pas avoir d'importance. Nous avons vu des personnes rencontrer ce problème sur les versions 1.4, 1.5 et 1.6.

Quelqu'un at-il une expérience des versions de cache explicites? Cela fonctionne-t-il de manière plus fiable (en ignorant la vitesse) de se fier plutôt aux balises cache_archive de "Last-Modified"? et / ou "Content-Length" valeurs (selon le site de Sun ) ?

FYI, le bloc d'objet ressemble à ceci:

<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>
Était-ce utile?

La solution

Malheureusement, les différentes versions du plug-in Java ont des comportements de mise en cache différents. La définition de vos en-têtes HTTP Cache-Control et Last-Modified est la solution idéale, mais elle ne fonctionne que sous les versions les plus récentes de JRE.

La seule solution GARANTIE est de renommer les fichiers JAR de votre application lorsque leurs versions changent (nous avons constaté un comportement étrange en matière de mise en cache lorsque vous essayez d’autres astuces, telles que l’ajout de chaînes de requête basées sur la date du fichier). Ce n'est pas si difficile à faire si vous avez un système de déploiement correctement automatisé.

Autres conseils

Vous pouvez supprimer une applet du cache Java à l'aide de Panneau de configuration Java .
Par exemple, sous Windows XP

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

Selon ce lien . , le même fichier jar ne doit pas figurer dans la liste int & archive; archive " et " cache_archive " params. Dans ce cas, le fichier JAR est mis en cache à l'aide du cache du navigateur natif.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top