2010-11-23 23 views
10

Mon ami et moi développons un petit jeu et nous voulons partager les étapes de développement avec nos amis. J'ai donc fait cette petite page http://people.scs.carleton.ca/~manders8/game.htmlComment forcer une applet Java à charger hors du cache

En ce moment c'est un fichier .class que nous mettons à jour. Mais pour une raison quelconque, il charge toujours l'ancienne version. Je sais qu'il existe un moyen de désactiver la mise en cache Java, mais mes amis ne sont pas aussi compétents. De plus, pour amener les gens à jouer à votre jeu, il devrait être facile et ne nécessite pas 5 étapes avec des captures d'écran juste pour l'essayer.

Je c'est le 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"> 

Parce que je pensais que ce serait peut-être navigateur lié mais cela ne contribue pas.

C'est mon code

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

changé de applet:

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

Répondre

13

Ajouter cette balise dans votre Applet: <param name="cache_option" value="no">

En parlant de balises Applet, ils ont été obsolète pour années; pensez à utiliser le object tag à la place.

+0

Merci qui semblaient avoir travaillé! – Uri

3

La mise en cache des applets Java peut se faire à deux niveaux: le navigateur et le plugin Java. Votre problème semble être avec le plugin. Je viens de découvrir ceci:

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

Une approche certaines personnes utilisent est versioning des ressources, à savoir générer un nouveau nom de l'applet pour chaque version (mieux si vous emballez l'applet dans un fichier jar et renommer le pot pour chaque nouvelle version, par exemple titlescreen-1.2.23.jar). Si vous avez un outil de construction décent (ant, maven) qui peut automatiser ce changement de nom pour vous, à la fois au niveau du JAR et du tag, mieux ce sera.

1

Ces balises feront des merveilles pour éviter que la page ne soit mise en cache. Cependant, l'applet est séparée. :)

Vous devez configurer le serveur pour qu'il envoie ces en-têtes avec le fichier de classe lui-même (si possible, étudiez le support .htaccess).

Si ce n'est pas possible, mais vous avez accès à PHP ou un langage de script côté serveur, vous pouvez utiliser quelque chose comme ceci:

<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: De plus, R. Bemrose a une bonne idée. Essayez d'ajouter ceci à la balise applet:

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

Si cela finit par être la solution, assurez-vous d'accepter sa réponse :)