首页 文章

即使在服务器中更改了文件,也始终从缓存下载JNLP文件

提问于
浏览
1

我们在一个基于Java-Applet的Web应用程序中获得了性能 . 所以我们实现了JNLP概念来改进applet加载 .

根据JNLP,

JAR文件将首次下载到客户端计算机,并将在本地缓存

如果服务器中的applet版本与缓存中的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>

2 回答

  • 1

    您可以尝试将JNLP文件设置为在浏览器中立即过期,即在下载时设置相应的 Headers ,如 expirescache-controlno-cache pragma等(通常您需要几个用于所有不同的浏览器) .

  • 2

    我想你从某种网络服务器下载jnlp文件?如果是,那么你应该仔细看看链接到jnlp的网站 . 也许添加像 foobar.jnlp?version=xx.yy.zz 这样的东西可以提供帮助 . ?version=xx.yy.zz 将由服务器作为GET-Parameters处理(因此被文件选择忽略),但缓存时浏览器不会忽略它们 .

    问候

相关问题