2010-11-23 87 views
10

我和朋友正在開發一款小遊戲,我們希望與我們的朋友分享開發階段。所以我做了這個小小的頁面http://people.scs.carleton.ca/~manders8/game.html如何強制Java Applet加載緩存

現在它是我們正在更新的一個.class文件。但由於某些原因,它總是加載舊版本。我知道有一種方法可以關閉Java緩存,但我的朋友不是那麼勝任。此外,讓人們玩你的遊戲,它應該超級簡單,不需要像屏幕截圖一樣只需5步就可以試用。

我有這樣的標籤:

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

因爲我想這可能是瀏覽器相關,但沒有幫助。

這是我的代碼

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

回答

13

添加這個小應用程序標籤中:<param name="cache_option" value="no">

Applet標記的說到,他們已經過時了年份;請考慮使用object tag來代替。

+0

感謝,似乎已經奏效! – Uri 2010-11-23 23:58:52

3

Java applet的緩存可能發生在兩個層次上:瀏覽器和Java插件。你的問題似乎與插件。我剛剛發現這一點:

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

一種方法有些人用的是資源的版本,即生成每個版本的新的小程序的文件名(更好,如果你打包在一個jar文件的小程序,並重新命名罐子每個新版本,例如titlescreen-1.2.23.jar)。如果你有一個體面的構建工具(ant,maven),可以爲你自動完成這個重命名,無論是在JAR還是標記級別,效果都更好。

1

這些標籤將做奇蹟,以防止緩存。但是,小程序是分開的。 :)

您需要將服務器配置爲使用類文件本身發送這些標頭(如果可能,請調查.htaccess支持)。

如果這是不可能的,但你必須訪問PHP或一些服務器端腳本語言,你可以使用這樣的事情:

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

編輯:另外,R. Bemrose有一個好主意。嘗試添加這Applet標記:

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

如果這最終成爲了解決方案,一定要接受他的答案:)