Java-апплет кэшируется навсегда, не загружая новую версию?

StackOverflow https://stackoverflow.com/questions/66875

  •  09-06-2019
  •  | 
  •  

Вопрос

У нас есть случай, когда клиенты вечно кэшируют версии апплетов.Мы используем <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 кэшируется с использованием собственного кеша браузера.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top