Файл JNLP всегда загружается из кэша, даже если файл изменяется на сервере - PullRequest
1 голос
/ 03 апреля 2012

Мы получили снижение производительности в одном из веб-приложений на основе Java-апплета.Таким образом, мы реализовали концепцию JNLP для улучшения загрузки апплета.

Согласно JNLP,

Файлы JAR будут загружены на клиентский компьютер впервые и будут кэшироваться локально

Если версия апплета на сервере совпадает с версией апплета в кэше, апплет не будет загружен, вместо этого он будет загружен из кэша

Если в версии 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 ]

2 голосов
/ 03 апреля 2012

Вы можете попытаться установить истечение срока действия файла JNLP в браузере, т. Е. При загрузке установить соответствующие заголовки, такие как expires, cache-control, прагма no-cache и т. Д. (Обычно вам нужно несколько для всех разные браузеры).

1 голос
/ 03 апреля 2012

я полагаю, вы скачали файл jnlp с какого-то веб-сервера?Если да, то вы должны посмотреть на сайт, ссылающийся на jnlp.Возможно, может помочь добавление что-то вроде foobar.jnlp? Version = xx.yy.zz .? Version = xx.yy.zz будет обрабатываться сервером как GET-параметры (и поэтому игнорируется при выборе файла), но не игнорируется браузером при кэшировании.

Приветствия

...