【发布时间】:2010-10-18 01:48:03
【问题描述】:
是否可以在客户端缓存小程序中使用的 jar 文件?我正在阅读相互矛盾的信息:
- 看来您可以使用
<object>+<param>设置“缓存”参数
然而——
- 我猜
<applet>是首选方式吗?我还没有看到applet 标记的任何类型的缓存属性。
有谁知道缓存 jar 文件的方法吗?我的小程序中需要一个第三方库,大小约为 130kb。
谢谢
【问题讨论】:
是否可以在客户端缓存小程序中使用的 jar 文件?我正在阅读相互矛盾的信息:
<object> + <param> 设置“缓存”参数
然而——
<applet> 是首选方式吗?我还没有看到applet 标记的任何类型的缓存属性。 有谁知道缓存 jar 文件的方法吗?我的小程序中需要一个第三方库,大小约为 130kb。
谢谢
【问题讨论】:
根据java plugin development documentation,您可以使用cache_archive、cache_version 和cache_archive_ex 参数来缓存您的小程序和第三方库。
这是用法:
<OBJECT .... >
<PARAM NAME="archive" VALUE="a.jar">
<PARAM NAME="cache_archive" VALUE="b.jar, c.jar, d.jar">
<PARAM NAME="cache_version" VALUE="0.0.0.1, 0.0.2A.1, 0.3D.22.FFFE">
<PARAM NAME="cache_archive_ex" VALUE="applet.jar;preload, util.jar;preload;0.9.0.AC1, tools.jar;0.9.8.7F">
</OBJECT>
另外,这个页面有一个警告:
.jar 档案指定的文件 属性也被缓存在这个 粘性缓存。
万一这个小程序缓存机制 对你不起作用,检查是否 它已在其他地方禁用,例如 就像通过 API 一样。确保你 没有禁用 URLConnection 的 通过 API 缓存: URLConnection.setUseCaches 和 URLConnection.SetDefaultUseCaches
【讨论】:
Applet 默认缓存在客户端机器上,IMO 几乎不需要覆盖它。
即使使用缓存机制,也不能保证文件会被缓存。缓存控件似乎更多是关于版本控制 IMO,但在注意到使用它时进度条行为很奇怪后,我禁用了它。
对于版本控制,我只需从包含版本号的 URL 加载 jar。
【讨论】: