2012-04-03 15 views
1

Wir haben Leistung in einer der Java-Applet-basierten Webanwendung erreicht. Daher haben wir das JNLP-Konzept implementiert, um das Applet-Laden zu verbessern.JNLP-Datei immer aus dem Cache heruntergeladen, auch wenn die Datei auf dem Server geändert wird

Per JNLP,

die JAR-Dateien werden zum ersten Mal auf Client-Rechner heruntergeladen werden und wird lokal

Wenn das Applet-Version auf dem Server zwischengespeichert werden, um das Applet-Version im Cache übereinstimmt, die Applet nicht statt heruntergeladen wird sie aus dem Cache

Wenn es eine Änderung in der Server-Seite in JAR-Version geladen werden, die alte JAR im Cache mit der neuen JAR

Aber in ersetzt wird unsere Anwendung funktioniert es nicht wie erwartet. Wir haben festgestellt, dass die jnlp-Datei selbst aus dem Cache kommt und daher die alte jar-Version enthält.

Gibt es eine Möglichkeit, dass jnlp-Datei sollte immer frisch heruntergeladen werden, immer wenn ein Browser geschlossen und geöffnet wird? oder gibt es alternative Möglichkeiten, dies zu beheben?

Jede Hilfe wird sehr geschätzt!

JNLP Datei

<?xml version="1.0" encoding="UTF-8"?> 
<jnlp spec="1.0+" codebase="" href="" version="2.0.0.0"> 
    <information> 
     <title>Active Viewer</title> 
     <vendor>Platts</vendor> 
     <offline-allowed/> 
    </information> 
    <resources> 
     <j2se version="1.6+" 
       href="http://java.sun.com/products/autodl/j2se"/> 
     <jar href="EWSApplet.jar" main="true" version="9.3.5.0" /> 
     <property name="jnlp.versionEnabled" value="true"/> 
    </resources> 
    <applet-desc name="EWSApplet" 
       main-class="com.mycompany.ew.applet.EWS_Config.EWS_Config.class" 
       width="1" 
       height="1"> 
    </applet-desc> 
    <update check="background" policy="always"/> 
</jnlp> 

Antwort

2

Sie könnten versuchen, die JNLP-Datei zu setzen sofort in Ihrem Browser ablaufen, das heißt, wenn das Herunterladen es die entsprechenden Header wie expires gesetzt, cache-control, die no-cache Pragma usw. (normalerweise müssen Sie mehrere für alle verschiedenen Browser).

1

Ich nehme an, dass Sie die jnlp-Datei von einer Art Webserver herunterladen? Wenn ja, dann sollten Sie näher auf die Website schauen, die mit dem jnlp verlinkt. Vielleicht kann das Hinzufügen von etwas wie foobar.jnlp? Version = xx.yy.zz helfen. Die ? Version = xx.yy.zz wird vom Server als GET-Parameter behandelt (und wird daher von der Dateiauswahl ignoriert), aber vom Browser beim Caching nicht ignoriert.

Grüße