Как предварительно загрузить изображения без JavaScript?

Maven - это инструмент для сборки, поэтому вы не можете изменять или выбирать реализацию во время выполнения с помощью maven. Maven использует зависимости, найденные в pom.xml, для компиляции проекта. В во время выполнения классы выбираются Java classloader.

Чтобы переопределить реализацию jaxb по умолчанию, вам нужно реализовать собственный загрузчик классов или настроить режим загрузчика классов во время выполнения на «родительский последний». По умолчанию «родительский сначала», который предпочитает классы JDK всем остальным.

Как это сделать, зависит от среды выполнения. Например, у IBM Websphere AS есть опция в консоли администратора, чтобы выбрать режим загрузчика классов.

Хорошая статья о загрузчиках классов и о том, как реализовать собственный загрузчик классов: https://www.baeldung.com/java-classloaders

Фрагмент кода для получения подробностей во время выполнения:

/**
 * Usage: ClassDetails.print(JAXB.class);
 */
public class ClassDetails {

    public static void print(Class clazz) {

        String apiDetails = String.format("%s - %s (%s)",
                clazz.getPackage().getSpecificationTitle(),
                clazz.getPackage().getSpecificationVendor(),
                clazz.getPackage().getSpecificationVersion());

        String implDetails = String.format("%s - %s (%s)",
                clazz.getPackage().getImplementationTitle(),
                clazz.getPackage().getImplementationVendor(),
                clazz.getPackage().getImplementationVersion());

        String classloader = clazz.getClassLoader() != null ?
                clazz.getClassLoader().toString() : "bootstrap";

        println("Class name", clazz.getCanonicalName());
        println("API details", apiDetails);
        println("Implementation", implDetails);
        println("Classloader", classloader);
    }

    private static void println(String label, String value) {
        System.out.println(String.format("%-16s: %s", label, value));
    }
}

27
задан Wasim Shaikh 4 May 2009 в 09:27
поделиться

6 ответов

Из http://snipplr.com/view/2122/css-image-preloader

Не требующий высоких технологий, но полезный Техника, которая использует только CSS. Поместив CSS в таблицу стилей, вставьте ее чуть ниже тега body вашей страницы: всякий раз, когда на ваши страницы ссылаются изображения, они теперь будут загружаться из кэша.

#preloadedImages
{
    width: 0px;
    height: 0px;
    display: inline;
    background-image: url(path/to/image1.png);
    background-image: url(path/to/image2.png);
    background-image: url(path/to/image3.png);
    background-image: url(path/to/image4.png);
    background-image: url();

}
32
ответ дан 28 November 2019 в 04:01
поделиться

Делайте ссылки на свои изображения в невидимых тегах img. при загрузке страницы они тоже будут скачиваться.

3
ответ дан 28 November 2019 в 04:01
поделиться

Не можете ли вы добавить их в качестве тега на свою страницу и скрыть их с помощью css?

1
ответ дан 28 November 2019 в 04:01
поделиться

Вы можете использовать скрытый div для вставки изображений. Как и так

<html>
<body>
<div style="width:1px; height:1px; visibility:hidden; overflow:hidden">
    <img src="img1.jpg" /><img src="img2.jpg" />
</div>
<div>Some html</div>
</body>
</html>

Хотя это работает только для изображений, т.е. если вы попытаетесь сделать то же самое для файлов .swf, то возникнут проблемы. Firefox не запускает файл .swf, если он не виден.

10
ответ дан 28 November 2019 в 04:01
поделиться

There is no need to preload images. I can't understand why 99% people thinks, that hover effects have to use 2 images. There is no such need, and using 2 images makes it look bad. The only good solution I know is to use CSS for A elements (or easy JS for all other buttons). When button us hovered set background-position to some offset.

a { display:block; width:160px; height:26px; background:url(b_tagsdesc.png); }
a:hover { background-position:0 26px }

That's all, image used you can see below:

alt text
(source: margonem.pl)

Edit: You can also use it other way. Instead of toggling image, you can hide your image. So starting point would be "background-position:0 -100px" and on hover "0 0".

This technique is called CSS sprites - here is good description of it: http://css-tricks.com/css-sprites/

35
ответ дан 28 November 2019 в 04:01
поделиться

Поскольку я не уверен, загружены ли скрытые изображения, вы, вероятно, захотите использовать спрайты изображений . Затем все изображение загружается, прежде чем что-либо отображается.

2
ответ дан 28 November 2019 в 04:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: