Java-апплет кэшируется навсегда, не загружая новую версию?
Вопрос
У нас есть случай, когда клиенты вечно кэшируют версии апплетов.Мы используем <param name="cache_version">
правильно отмечайте в нашем <object>
тег, или мы так думаем.Мы пошли от строки версии 7.1.0.40
к 7.1.0.42
и это вызвало загрузку только примерно у половины наших клиентов.
Кажется, не имеет значения, какую версию JRE использует клиент.Мы видели, как у людей возникала эта проблема в версиях 1.4, 1.5 и 1.6.
Есть ли у кого-нибудь опыт работы с явными версиями кэша?Работает ли более надежно (игнорируя скорость) вместо этого полагаться на cache_archive
значения «Last-Modified» и/или «Content-Length» (согласно Сайт Солнца)?
К вашему сведению, блок объектов выглядит так:
<object>
<param name="ARCHIVE" value="foo.jar">
<param name="CODE" value="com.foo.class">
<param name="CODEBASE" value=".">
<param name="cache_archive" value="foo.jar">
<param name="cache_version" value="7.1.0.40">
<param name="NAME" value="FooApplet">
<param name="type" value="application/x-java-applet;jpi-version=1.4.2_13">
<param name="scriptable" value="true">
<param name="progressbar" value="true"/>
<param name="boxmessage" value="Loading Web Worksheet Applet..."/>
</object>
Решение
К сожалению, разные версии подключаемого модуля Java имеют разное поведение кеширования.Установка заголовков Cache-Control и Last-Modified HTTP является идеальным решением, но оно работает только при самые последние версии JRE.
Единственное решение, ГАРАНТИРОВАННО работающее, — это переименовывать jar-файлы приложения при изменении их версий (мы видели странное поведение кэширования при попытке использовать другие приемы, такие как добавление строк запроса на основе дат файлов).Это не так сложно сделать, если у вас есть правильно автоматизированная система развертывания.
Другие советы
Вы можете удалить апплет из кеша Java, используя Java Control Panel
.
Например, на Win XP
Start -> Control Panel -> Java -> Temporary Internet Files[View]
Согласно эта ссылка , один и тот же файл jar не должен быть указан в параметрах «archive» и «cache_archive».В этом случае файл JAR кэшируется с использованием собственного кеша браузера.