Вопрос

У меня есть этот код в апплете.Апплет работает нормально, но я получаю много ненужных дубликатов.В частности, я заметил, что каждый «getResource» запускает загрузку файла .JAR.

static {
    ac = new ImageIcon(MyClass.class.getResource("images/ac.png")).getImage();
    dc = new ImageIcon(MyClass.class.getResource("images/dc.png")).getImage();
    //...other images
}

Как этого можно избежать?

Это было полезно?

Решение

Включаете ли вы апплет на страницу HTML? Если это так, попробуйте включить кэширование JAR, как описано здесь: http://java.sun.com/j2se/1.4.2/docs/guide/plugin/developer_guide/applet_caching.html

Если по какой-то причине это не помогает :) возможно, предоставьте свои ресурсы / изображения вдоль JAR-файла апплета на веб-сервере и обращайтесь к ним с помощью отдельных HTTP-запросов (да, это уродливо и да, это не уменьшает количество необходимых загрузок , но это по крайней мере уменьшает объем данных, которые должны быть переданы).

Другие советы

Простое удаление всех экземпляров URLConnection.setDefaultUseCaches (false) решит проблему.

Пожалуйста, обратитесь за более подробной информацией.

http: // java-junction .blogspot.com / 2009/11 / апплет-банка-кэширование не-working.html

Только обходной путь:

Вы можете поместить свои изображения в zip-файл внутри банки, получить его с помощью ZipInputStream и извлечь изображения оттуда.

Какую виртуальную машину Java вы используете?И какой сервер вы используете?

  • В плагине браузера Linux имеется ошибка.
  • Если сервер не отправляет дату изменения, Java не сможет кэшировать файл jar.

Если ваш апплет всегда загружает jar, даже если jar кэшируется, убедитесь, что вы не отключили кэширование URLConnection через API: URLConnection.setUseCaches и < код> URLConnection.SetDefaultUseCaches .

Базовый механизм

ImageIcon для извлечения ресурса - URLConnection . Вызов URLConnection.setDefaultUseCaches (false) устанавливает " часть статического состояния всех URLConnections " что заставляет JRE игнорировать кеш и перезагружать весь jar каждый раз, когда к нему обращаются.

Простое удаление всех экземпляров setDefaultUseCaches решит проблему.

это репост с: http: //java-junction.blogspot.com/2009/11/applet-jar-caching-not-working.html

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