10

我和我的朋友正在开发一个小游戏,我们想与我们的朋友分享开发阶段。所以我做了这个小页面http://people.scs.carleton.ca/~manders8/game.html

现在它是我们正在更新的一个 .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>
4

3 回答 3

13

在你的 Applet 标签中添加这个:<param name="cache_option" value="no">

说到 Applet 标签,它们已经过时多年了;考虑改用object标签

于 2010-11-23T21:45:15.553 回答
3

Java 小程序的缓存可能发生在两个级别:浏览器和 Java 插件。您的问题似乎与插件有关。我刚发现这个:

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

有些人使用的一种方法是资源版本控制,即为每个版本生成一个新的applet 文件名(最好将applet 打包在一个jar 文件中并为每个新版本重命名该jar,例如titlescreen-1.2.23.jar)。如果您有一个不错的构建工具(ant、maven)可以在 JAR 和标签级别为您自动重命名,那就更好了。

于 2010-11-23T21:45:22.297 回答
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 有一个好主意。尝试将此添加到小程序标签:

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

如果这最终成为解决方案,请务必接受他的回答:)

于 2010-11-23T21:45:44.387 回答