我正在尝试更新小程序的缓存。小程序正确缓存,但之后,无论缓存多么陈旧,它都不会更新。如果我手动删除缓存,将在下一页加载时创建一个新缓存,并且我尝试缓存的 .jar 文件的所有更改都会生效。但是,必须这样做是不可接受的。
我曾尝试在我的索引文件中将 cache_archive 与 cache_version 结合使用,如下所示:
if (navigator.appVersion.indexOf("Win")!=-1){
var attributes = { id:'manager', code:'HardwareManagerApplet_FileWriter', width:1, height:1} ;
var parameters = {jnlp_href: '/java/HardwareManagerApplet.jnlp', codebase: '/java/hardwaremanager.jar', cache_archive:'hardwaremanager.jar', cache_version:'0.0.0.7'};
check = deployJava.runApplet(attributes, parameters, '1.6');
hardware_enabled = true
console.log("Applet started")
}
这是没有效果的。我尝试将 cache_archive 和 cache_version 移动到属性中,并且之间的各种排列无济于事。我尝试将 cache_option 设置为第一个浏览器,然后再次尝试将其设置为插件。没有骰子。我研究了 ETags,但我不相信这会是最好的解决方案。我也研究了 last-Modified,但是 A)我不确定如何在 http 中实现它,以便缓存会更新和 B)如果我必须走那条路线,它将打开一个全新的罐头。
还有其他合理的选择吗?更好的是,我只是错误地实现了 cache_archive 等吗?
实际上,即使我可以在每次页面加载时缓存它,我也会感到满意。
感谢所有和任何帮助!
编辑:关于代码块是我用cache_archive等实现的唯一实现。我需要在其他地方放几行吗?就 Oracle 的文档而言,我认为这不是很清楚。