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

标签 java caching applet

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

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

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

仅供引用,对象 block 如下所示:

<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 插件具有不同的缓存行为。设置您的 Cache-Control 和 Last-Modified HTTP header 是理想的解决方案,但它仅适用于 the most recent versions。的 JRE。

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

关于永久缓存的 Java 小程序,不下载新版本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66875/

相关文章:

Java 小程序 : Reverse Engineering HTTP Calls

java - 整数缓存有多大?

java - 找到树中从叶子到根的路径

python - 在 App Engine 应用程序中放置缓存驱逐逻辑的最佳位置在哪里?

wordpress - Bonno WordPress 主题缓存 CSS 无限更新

Java 1.7.0u71 无法加载 1.7.0u67 可以加载的小程序

java - 如何放置静态图像直到使用 picasso 从 url 下载图像

java - Spring - 拦截 bean 创建和注入(inject)自定义代理

algorithm - 具有虚拟内存和写入组合的并行基数排序

java - 无法从证书中找到私钥