我们在一个基于Java-Applet的Web应用程序中获得了性能。因此我们实现了JNLP概念以改善applet加载。
根据JNLP,
JAR文件将首次下载到客户端计算机,并将在本地缓存
如果服务器中的applet版本与缓存中的applet版本匹配,则不会下载applet,而是从缓存中加载
如果服务器端的JAR版本有任何更改,缓存中的旧JAR将替换为新的JAR
但在我们的应用程序中,它没有按预期工作。我们发现jnlp文件本身来自缓存,因此它包含旧的jar版本。
有没有什么方法可以在每次浏览器关闭时单独下载jnlp文件? 还是有其他替代方法来解决这个问题吗?
非常感谢任何帮助!!
JNLP档案
<?xml version="1.0" encoding="UTF-8"?>
<jnlp spec="1.0+" codebase="" href="" version="2.0.0.0">
<information>
<title>Active Viewer</title>
<vendor>Platts</vendor>
<offline-allowed/>
</information>
<resources>
<j2se version="1.6+"
href="http://java.sun.com/products/autodl/j2se"/>
<jar href="EWSApplet.jar" main="true" version="9.3.5.0" />
<property name="jnlp.versionEnabled" value="true"/>
</resources>
<applet-desc name="EWSApplet"
main-class="com.mycompany.ew.applet.EWS_Config.EWS_Config.class"
width="1"
height="1">
</applet-desc>
<update check="background" policy="always"/>
</jnlp>
答案 0 :(得分:2)
您可以尝试将JNLP文件设置为在浏览器中立即过期,即在下载时设置相应的标题,例如expires
,cache-control
,no-cache
编译指示等。你需要几个不同的浏览器。)
答案 1 :(得分:1)
我假设你从某种网络服务器下载jnlp文件?如果是,那么你应该仔细查看链接到jnlp的网站。也许添加像 foobar.jnlp?version = xx.yy.zz 这样的东西可以提供帮助。 ?version = xx.yy.zz 将由服务器作为GET-Parameters处理(因此被文件选择忽略),但缓存时浏览器不会忽略它。
问候