sans utiliser la bibliothèque de chargement d'image, je suis le chargement et le traitement des images comme ci-dessous:GWT image Chargement (onLoad) pour toile
ImageGenerator(){
for(int i=0;i<100;i++){
ImageProcess(data-i , i);
}
}
ImageProcess(String data , int i){
final Image img = new Image(data);
img.setVisible(false);
RootPanel.get().add(img);
GWT.log("image " + i);
img.addLoadHandler(new LoadHandler() {
@Override
public void onLoad(LoadEvent event) {
GWT.log("onload " + i + " " + img.getWidth());
ImageElement data = ImageElement.as(img.getElement());
RootPanel.get().remove(img);
obj.setData(data);
..obj processing
}
});
}
Le résultat:
image 1;
image 2;
image 3;
..
image 98;
image 99; <-- finish for loop
onload 1; <-- start loading image
onload 2;
onload 3;
..
onload 98;
onload 99;
Mais je l'espère ressemble :
image 1; <-- generate image and load image step by step
onload 1;
image 2;
onload 2;
image 3;
onload 3;
..
image 98;
onload 98;
image 99;
onload 99;
Je sais qu'après avoir attribué une valeur à img.src, l'image n'est pas immédiatement disponible. Il doit être chargé en premier. L'élément img déclenchera un événement onload, dès que l'image sera chargée. J'essaye d'ajouter le temporisateur et de mettre l'image à l'élément DOM différent. Ça ne marche pas.
Mes questions sont, Comment déclencher l'élément d'image à charger immédiatement? ou laissez ImageProcess attendre jusqu'à la fin du chargement?
1. Je charger les images à partir du disque local, et non serveur. mécanisme de chargement est un javascript natif. C'est très rapide et difficile à partager. Je dois traiter chaque image une à une, sinon elle me manquera de mémoire. 2. Je tente de porter "natif ImageGenerator javascript()" à gwt pour tester votre idée, merci beaucoup. – user990653
J'essaie de mettre en œuvre votre idée. Mais cela provoque des fuites de mémoire. Existe-t-il un mécanisme de condition d'attente dans GWT? – user990653
Pour autant que je sache, il n'y a pas de mécanisme d'attente. Peut-être qu'un retrait fonctionnerait ... –