2010-11-23 8 views
10

Mein Freund und ich entwickeln ein kleines Spiel und wir möchten die Entwicklungsphasen mit unseren Freunden teilen. Also habe ich diese kleine Seite gemacht http://people.scs.carleton.ca/~manders8/game.htmlWie erzwingen, dass ein Java Applet aus dem Cache geladen wird

Im Moment ist es eine .class Datei, die wir aktualisieren. Aber aus irgendeinem Grund lädt es immer die alte Version. Ich weiß, dass es eine Möglichkeit gibt, Java-Caching abzuschalten, aber meine Freunde sind nicht so kompetent. Und um die Leute dazu zu bringen, Ihr Spiel zu spielen, sollte es super einfach sein und keine 5 Schritte mit Screenshots erfordern, nur um es auszuprobieren.

Ich habe dies ist der Tag:

<meta http-equiv="Pragma" content="no-cache"> 
<meta http-equiv="no-cache"> 
<meta http-equiv="Expires" content="-1"> 
<meta http-equiv="Cache-Control" content="no-cache"> 

Weil ich dachte, es Browser verwandt sein könnte, aber das hilft nicht.

Dies ist mein Code

<applet code="com.murderbody.prototype.TitleScreen.class" codebase="http://people.scs.carleton.ca/~manders8/content/" width=640 height=380></applet> 

von Applet geändert:

<object type="application/x-java-applet;version=1.5" width="640" height="380"> 
    <param name="codebase" value="http://people.scs.carleton.ca/~manders8/content/"> 
    <param name="code" value="com.murderbody.prototype.TitleScreen.class"> 
    <param name="cache_option" value="no"> 
</object> 

Antwort

13

Fügen Sie diese in Ihrem Tag Applet: <param name="cache_option" value="no">

Apropos Applet-Tags haben sie für obsolet Jahre; in Betracht ziehen, stattdessen die object tag zu verwenden.

+0

Dank, die gearbeitet zu haben schienen! – Uri

3

Das Zwischenspeichern von Java-Applets kann auf zwei Ebenen geschehen: dem Browser und dem Java-Plugin. Dein Problem scheint mit dem Plugin zu sein. Ich habe gerade dies:

http://java.sun.com/products/plugin/1.3/docs/appletcaching.html

Ein Ansatz einige Leute verwenden Ressourcen Versionierung, dh ein neues Applet Dateinamen erzeugen für jede Version (besser, wenn Sie das Applet in einer JAR-Datei verpacken und das Glas für jeden neuen umbenennen Version, zB titelscreen-1.2.23.jar). Wenn Sie ein anständiges Build-Tool (ant, maven) haben, das diese Umbenennung für Sie automatisieren kann, sowohl auf JAR- als auch auf Tag-Ebene, ist das besser.

1

Diese Tags werden Wunder wirken, um zu verhindern, dass die Seite zwischengespeichert wird. Das Applet ist jedoch separat. :)

Sie müssen den Server konfigurieren, um diese Header mit der Klassendatei selbst zu senden (wenn möglich, untersuchen Sie .htaccess Unterstützung).

Wenn das nicht möglich ist, aber Sie haben Zugriff auf PHP oder eine serverseitige Skriptsprache, Sie so etwas wie diese verwenden:

<applet code="com.murderbody.prototype.TitleScreen.class?<?php echo rand(1, 10000);?>" codebase="http://people.scs.carleton.ca/~manders8/content/" width=640 height=380></applet> 

Edit: Auch R. Bemrose hat eine gute Idee. Versuchen Sie, dies den Applet-Tag:

<param name="cache_option" value="no"> 

Wenn das die Lösung endet als, sicher sein, seine Antwort zu akzeptieren :)