Chrome 中的 Vaadin 网格中的缩略图未正确呈现

Thumbnails not rendering correctly in Vaadin Grid in Chrome

我使用的是最新版本的 Vaadin 8.1.4。代码很简单,由三列组成,其中一列是图像组件。当该行被 selected 时,图像组件会将图像更改为网格的另一行图像。最终在 select 和 unselect 之后(图像也在 unselect 上发生变化)图像最终落在图像上。

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;
}

无论出于何种原因,System.out.println 行都不会在 Chrome 中始终如一地执行。在 Firefox 中,它总是在渲染网格时调用,但在 Chrome 中,通常不会调用 System.out.println,这会导致上述奇怪的错误和行为。有时甚至根本没有调用它,这让我对网格中的缩略图是如何生成的感到困惑?我必须假设某种浏览器缓存?

我的网格包括:

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

有人 运行 遇到过这个错误吗?如果是,你是如何解决的?

PS:我使用图像组件的唯一原因是除了我可以看到的这种方式之外,没有其他方法可以在网格中呈现服务器生成的缩略图...

我能够使用以下插件解决问题:https://vaadin.com/directory#!addon/grid-renderers-collection-for-vaadin7

代码很简单:

grid.addColumn(data.getThumbnailByteArray(), BlobImageRenderer());