Вопрос

Без использования библиотеки загрузки изображения я загружаю изображения, как ниже:

final Image img = new Image();
img.setVisible(false);
RootPanel.get().add(img);
img.addErrorHandler(new ErrorHandler() {
    @Override
    public void onError(ErrorEvent event) {
        System.out.println(event);
    }
});
img.addLoadHandler(new LoadHandler() {
    @Override
    public void onLoad(LoadEvent event) {
        ImageElement data = ImageElement.as(img.getElement());
        RootPanel.get().remove(img);
        obj.setData(data);
        System.out.println("Arrived:" + (System.currentTimeMillis()-startTime) + "ms");
        render();
    }
});

Без использования rootpanel.get (). Add (img); Изображение никогда не будет добавлено в DOM. Так что разгрузка не будет запускается. Но когда вы добавляете изображение в DOM, если вы не удалите его, это будет утечка памяти.

Мои наблюдения о вышеуказанном коде:

  1. Если я не добавляю изображение в DOM, обработчик загрузки не будет запускается.
  2. Если я это сделаю, но не удаляй после загрузки, произойдет утечка памяти.
  3. II DO, и я снимаю, Chrome позвонит сбору мусора после 256 МБ. Firefox никогда не называл коллекцию мусора. Так произошла утечка памяти. Может быть, Firefox позвонит коллекционеру мусора, когда он нуждается. Я не знаю эту проблему так много.

Мои вопросы: есть ли процедуры загрузки изображения (библиотеки) обрабатывают загрузку изображения?
Они автоматически удаляют изображение из DOM после загрузки изображения?
Есть ли более подходящий способ решить эту проблему, где вы рисуете много изображений, но не требует изображения после рисования?
Также есть быстрые подходы, чтобы добавить и удалить изображения в/из DOM?

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

Решение

Для загрузки изображений используйте com.google.gwt.widgetideas.graphics.client.imageLoader

Это загружает большое количество изображений одновременно.

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