java - 如何更新小程序的缓存?

标签 java html caching applet next-generation-plugin

我正在尝试更新小程序的缓存。小程序正确缓存,但之后,无论缓存多么陈旧,它都不会更新。如果我手动删除缓存,将在下一页加载时创建一个新缓存,并且我尝试缓存的对 .jar 文件的所有更改都会生效。但是,必须这样做是 Not Acceptable 。

我试过在索引文件中将 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 设置为第一个浏览器,然后再次尝试将其设置为插件。没有骰子。我研究了 ETag,但我不确定这将是最佳解决方案。我也研究了 last-Modified,但是 A) 我不确定如何将它实现到 http 中以便缓存将更新,并且 B) 如果我必须走那条路,它将打开一个全新的 jar 头。

还有其他合理的选择吗?更好的是,我只是错误地实现了 cache_archive 等吗?

实际上,即使我每次加载页面时都能将其缓存,我也会感到满意。

感谢所有的帮助!

编辑:关于的代码块是我对 cache_archive 等所做的唯一实现。我需要在其他地方放几行吗?就 Oracle 的文档而言,我发现它不是很清楚。

最佳答案

您缺少缓存选项的参数,它们如下所示

cache_option 属性可以取三个值之一:

  • - 禁用小程序安装。始终从 Web 服务器下载文件。
  • 浏览器 - 从浏览器缓存运行小程序(默认)。
  • 插件 - 从新的 Java 插件缓存运行小程序。

默认为浏览器,您必须清除浏览器缓存才能使更新的值生效。使用插件充分利用您要实现的版本控制。

关于java - 如何更新小程序的缓存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6665969/

相关文章:

html - 删除顶部和底部的单元格填充

javascript - 是否可以根据 CSS 中的媒体查询禁用脚本?

ASP.NET:WCF 和无法加载文件或程序集“App_Web_hamznvwf”

java - 排序依据字段,最长的字符串排在前面

java - 我们可以从 Action 类返回任何类对象到拦截器吗

java - 计算 Java 字符串中的重复单词。奇数终端显示

java - 关系非主键@OneToOne Hibernate JPA

html - 背景图片被剪切

php - Laravel PSR-16 缓存。适配\Predis\Client 到\Redis?

caching - Firebase托管-强制浏览器在新部署上重置缓存?