我有一个 Applet,它使用 URLConnection 通过 http 连接加载图像。我正在为所有连接设置 setUseCaches(true),但仍然没有看到任何缓存行为。我的图像的 HTTP 标头具有合理的缓存设置。如果您查看错误 4528599,就会发现这个相当神秘的声明:
Java 插件的当前版本 (1.3.1) 仅检查浏览器缓存中名称以 .jar 或 .class 结尾的文件。有人告诉我,对于 Java Plug-In 1.4,将检查浏览器缓存中的以下文件类型:.class、.jar、.zip、.jpg、.gif、.wav、.au。
当然,这在 1.6 中被标记为 FIXED,但即使在 1.6 下,我也看不到任何缓存。我的图像是 PNG 文件,在某些情况下实际上并没有以 .png 扩展名结尾。我没有看到任何缓存。
错误修复报告谈到了 1.6 统一下载引擎,但 google 似乎对此知之甚少。
这应该有效还是只是另一个损坏的 Sun“功能”。有什么方法或解决方法可以让我的小程序从浏览器缓存中加载 PNG 图像?我宁愿不实现我自己的......
更新:缓存似乎与ResponseCache实现相关联。有关其工作原理的更多信息,请参阅此技术说明。最后一行说:
Java 2 标准版中没有 URLConnection 缓存的默认实现。但是,Java Plugin 和 Java WebStart 确实提供了一个开箱即用的功能。
所以在我看来问题真的变成了:Java Plugin ResponseCache 实现是如何真正工作的?v1.4/v1.5/v.16有什么区别
有人有什么想法吗?