为什么我们在 GWT 中使用 ClientBundle 和 ImageResource?

Why we use ClientBundle And ImageResource in GWT?

public ImageBundleExample() {

    MyImageBundle objBundle = GWT.create(MyImageBundle.class);

    Image logo = new Image(objBundle.closeImageSource());

    HorizontalPanel objHorizontalPanel = new HorizontalPanel();
    objHorizontalPanel.add(logo);

    initWidget(objHorizontalPanel);
}

public interface MyImageBundle extends ClientBundle
{

    @Source("com/example/client/GUI/Images/close.jpg")
    public ImageResource closeImageSource();

    @Source("com/example/client/GUI/Images/closeLessPixels.jpg")
    public ImageResource closeLessPixelsImageSource();
}

你能告诉我它是如何优化性能的吗? 直接使用 Image 或 ClientBundle 与 ImageResorce 有什么区别。 ?

使用 ClientBundle GWT 将创建所有引用图像的一个 sprite。而不是调用 n 次服务器(对于每个图像)只有一次调用。

您需要 ImageResource 从 sprite 中获取正确的图像。