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

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

有人有显式缓存版本的经验吗?它的工作是否更可靠(忽略速度)而不是依赖于 cache_archive的“Last-Modified”和/或“Content-Length”值(根据 太阳网站)?

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

<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 Plug-In 有不同的缓存行为。设置 Cache-Control 和 Last-Modified HTTP 标头是理想的解决方案,但它仅适用于 最新版本 JRE 的。

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

其他提示

您可以使用以下命令从 Java 缓存中删除小程序 Java Control Panel.
例如,在 Win XP 上

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

按照 这个链接 ,相同的 jar 文件不应在“archive”和“cache_archive”参数中列出。在这种情况下,JAR 文件将使用本机浏览器缓存进行缓存。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top