2017-09-19 1 views
0

Ich verwende die neueste Version 8.1.4 von Vaadin. Der Code ist einfach und besteht aus drei Spalten, wobei eine Spalte eine Image-Komponente ist. Wenn diese Zeile ausgewählt ist, ändert die Bildkomponente das Bild in das Bild einer anderen Zeile für das Raster. Schließlich nach einer Reihe von Auswahl und Auswahl (das Bild ändert sich auch bei Auswahl aufheben) das Bild schließlich auf einem Bild.Thumbnails nicht korrekt in Vaadin Grid in Chrome

public StreamResource getImageForGrid() 
{ 
    StreamResource streamResource = new StreamResource(
     () -> { 
      System.out.print("Line is not output sometimes when rendering grid"); 
      return new ByteArrayInputStream(getConvertedThumbnailImage()); 
     }, name + ".jpg"); 
    streamResource.setCacheTime(0); 
    return streamResource; 
} 

Aus welchem ​​Grund die System.out.println Linie konsequent in Chrome wird nicht ausgeführt. In Firefox wird es immer aufgerufen, wenn das Raster gerendert wird, aber in Chrome wird System.out.println oft nicht aufgerufen, was zu dem obigen seltsamen Fehler und Verhalten führt. Manchmal wird es gar nicht aufgerufen, was mich verwirrt, wie die Thumbnails im Raster überhaupt erzeugt werden? Ich muss eine Art Browser-Caching übernehmen?

Mein Gitter besteht aus:

grid.addComponentColumn(
    gridData -> new Image(gridData.getName(), gridData.getImageForGrid()); 

Hat jemand in diesen Bug laufen? Und wenn ja, wie lösen Sie es auf?

PS: Der einzige Grund, warum ich Bildkomponenten bin ist, dass es keine andere Möglichkeit ist zu präsentieren Server Thumbnails in einem Raster anders als diese Art und Weise, die ich sehen kann ...

+0

ich denke auch, das ein Browser Bildcachierens Problem. Nur zum Testen: Was passiert, wenn Sie das Image in ein Layout einfügen und die Image-Komponente beim Auswählen/Entfernen durch eine neue Image-Komponente ersetzen? (Ich nehme an, dass Sie 'setSource' bisher verwenden) –

+0

Ja, ich verwende setSource. Und es funktioniert perfekt in Firefox, aber nicht in Chrome. Außerdem ändere ich nicht das Bild beim Auswählen/Abwählen, da wird dort überhaupt kein Code aufgerufen. –

Antwort

Verwandte Themen