Java 小程序永久缓存,不下载新版本?

Java applet cached forever, not downloading new version?

提问人: 提问时间:9/16/2008 更新时间:2/27/2013 访问量:11633

问:

我们有一个案例,客户端似乎永远缓存小程序的版本。我们在标签中正确使用了标签,或者我们是这么认为的。我们从版本字符串转到 ,这触发了大约一半客户的下载。<param name="cache_version"><object>7.1.0.407.1.0.42

客户端运行的是哪个版本的 JRE 似乎并不重要。我们已经看到人们在 1.4、1.5 和 1.6 上遇到了这个问题。

有人有显式缓存版本的经验吗?依靠 的 “Last-Modified” 和/或 “Content-Length” 值(根据 Sun 的 Site)是否更可靠(忽略速度)?cache_archive

仅供参考,对象块如下所示:

<object>
  <param name="ARCHIVE" value="foo.jar">
  <param name="CODE" value="com.foo.class">
  <param name="CODEBASE" value=".">
  <param name="cache_archive" value="foo.jar">
  <param name="cache_version" value="7.1.0.40">
  <param name="NAME" value="FooApplet">
  <param name="type" value="application/x-java-applet;jpi-version=1.4.2_13">
  <param name="scriptable" value="true">
  <param name="progressbar" value="true"/>
  <param name="boxmessage" value="Loading Web Worksheet Applet..."/>
</object>
Java 缓存 小程序

评论


答:

9赞 MtotheThird 9/16/2008 #1

遗憾的是,不同版本的 Java 插件具有不同的缓存行为。设置 Cache-Control 和 Last-Modified HTTP 标头是理想的解决方案,但它仅适用于最新版本的 JRE。

唯一保证有效的解决方案是在应用程序 jar 版本更改时重命名它们(我们在尝试其他技巧(例如根据文件日期添加查询字符串)时看到了奇怪的缓存行为)。如果您有一个适当的自动化部署系统,这并不难做到。

0赞 Vaisakh 3/6/2012 #2

根据此链接,不应在“存档”和“cache_archive”参数中列出相同的 jar 文件。在这种情况下,将使用本机浏览器缓存缓存 JAR 文件。

2赞 Ilya 2/27/2013 #3

您可以使用 从 Java 高速缓存中删除 Applet。
例如,在 Win XP 上
Java Control Panel

Start -> Control Panel -> Java -> Temporary Internet Files[View]