【发布时间】:2012-04-11 09:41:52
【问题描述】:
有哪些方法可用于在 Java 小程序中进行缓存?
我认为组成小程序的 .jar 将被大多数浏览器缓存。
- 对于小程序使用的任何依赖 .jar 是否都是这种情况?
- 如果小程序在运行时从远程 URL 加载资源,是 正确假设这不会被浏览器缓存?如果它 不被浏览器缓存,是否能够实现缓存 通过写入本地存储?
【问题讨论】:
标签: java http caching applet lwjgl
有哪些方法可用于在 Java 小程序中进行缓存?
我认为组成小程序的 .jar 将被大多数浏览器缓存。
【问题讨论】:
标签: java http caching applet lwjgl
对于小程序使用的任何依赖 .jar 是否都是这种情况?
是的,假设依赖的 JAR 是可缓存的。
如果小程序在运行时从远程 URL 加载资源,假设浏览器不会缓存这些资源是否正确?
可能是的。 JVM 可能会直接连接到远程服务器,而浏览器将看不到 HTTP 请求。此外,JVM 可能不知道浏览器的缓存组织或位置。但是,这完全取决于平台。
JVM 也有可能实现自己的 HTTP 缓存。 AFAIK,当前一代的 Oracle JVM 没有,但未来的可能并非不可想象。
如果不被浏览器缓存,是否可以通过写入本地存储来实现缓存?
仅当小程序已签名并且用户已接受签名时。小程序通常无法读取或写入本地存储。
【讨论】:
为了更好地控制资源缓存,使用Java Web Start 部署小程序,它提供:
..自动更新(包括延迟下载和程序化控制更新)..
请注意,JWS 应用程序。无需信任即可调用JNLP API 的程序化更新部分。
【讨论】:
根据How to disable http caching in applet 和URLConnection JavaDoc,缓存将在以编程方式请求资源时启用。
【讨论】:
setUseCaches 谈到 允许 使用缓存。我认为它指的是外部 HTTP 代理中的缓存。但是请随意尝试看看这是否确实使用了浏览器的缓存和/或 JVM 特定的缓存。