Joe*_*nza 18 java applet urlconnection
我有一个Applet,它使用URLConnection通过http连接加载图像.我为所有连接设置setUseCaches(true),但仍然没有看到任何缓存行为.我的图像的HTTP标头具有合理的缓存设置.如果你看一下bug 4528599,就会有这个相当神秘的陈述:
Java Plug-In的当前版本(1.3.1)仅检查浏览器缓存中名称以.jar或.class结尾的文件.有人告诉我,对于Java Plug-In 1.4,将检查浏览器缓存的以下文件类型:.class,.jar,.zip,.jpg,.gif,.wav,.au.
当然,这被标记为1.6的固定,但即使在1.6以下,我也看不到任何缓存.我的图像是PNG文件,在某些情况下,实际上并不以.png扩展名结尾.我没有看到任何缓存.
错误修复报告讨论了1.6统一下载引擎,但谷歌似乎并不了解它.
这是应该工作还是只是另一个破碎的太阳"功能".有什么方法或解决方法,我可以让我的applet从浏览器缓存加载PNG图像?我宁愿不实施自己的....
更新:缓存似乎与ResponseCache实现相关联.有关其工作原理的详细信息,请参阅此技术说明.最后一行说:
Java 2 Standard Edition中没有URLConnection缓存的默认实现.但是,Java Plugin和Java WebStart确实提供了一个开箱即用的功能.
所以在我看来问题确实变成了:Java插件ResponseCache实现如何真正起作用?v1.4/v1.5/v.16之间有什么区别
有人有任何想法吗?
此方法很可能仅将传出请求中的HTTP Cache-Control头指令设置为允许缓存的值.如果你调用setUseCaches(false),就会有一个
Cache-Control: no-cache
Run Code Online (Sandbox Code Playgroud)
例如指令.要检查这一点,您可以在applet和服务器之间放置一个HTTP调试代理服务器,并查看标头.
现在只是因为请求说它愿意使用缓存,您的服务器可能没有设置为启用它们.也许它没有在响应中设置具有适当长时间的Expires头,或者可能是在禁止缓存的响应中设置Cache-Control头.
其他一些要检查的事情:
如果这只是一个用于Web应用程序测试的普通浏览器,那么您还需要确保没有按下刷新按钮,因为这相当于设置no-cache.
| 归档时间: |
|
| 查看次数: |
20546 次 |
| 最近记录: |