从GWT中的服务器高效加载多个图像?

时间:2013-11-29 23:53:20

标签: javascript json gwt uibinder

我使用JSON从服务器请求许多图像显示在

<g:Image />

在GWT客户端。

我现在正在做的是发送一个GET请求,该请求返回指向我服务器上的图像的图像URL的JSON列表。

当我将这些网址附加到我的gwt图片时,我想它会在不同的请求中加载每个图像。

  1. 有没有办法结合图片网址中图片的请求来减少请求?

  2. 我的方法是否可行?

  3. 编辑:

    我知道对于静态图像我使用ClientBundle。但假设您的应用可以创建图像并将其存储在服务器文件系统中。然后,当您从应用程序请求这些图像时,您需要另一种方法。你有什么建议?

1 个答案:

答案 0 :(得分:0)

在GWT中处理图像的最佳方法是使用ImageResources。

您必须创建一个ImageResource:

public interface ImageResources extends ClientBundle {

  ImageResources IMAGE_RESOURCES = (ImageResources) GWT.create(ImageResources.class);

  @Source("Gwt-logo.png")
  ImageResource gwtLogo();

}

并将您的图片放在同一个客户端 - pacakge。

在您的ui.xml中,您可以像这样引用图像资源:

<ui:with field="imageResources" type="com.path.client.resources.ImageResources" />

并使用像这样的图像资源:

<g:Image resource="{imageResources.gwtLogo}"/>

GWT将为您的所有图像创建一个精灵,并通过一次调用加载此精灵。这非常有效。