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());
我使用的是最新版本的 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());