首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >GXT性能问题

GXT性能问题
EN

Stack Overflow用户
提问于 2010-05-20 03:45:37
回答 2查看 1.5K关注 0票数 3

我们正在使用GXT开发一个相当复杂的系统。虽然在FF上一切都很好,但IE (特别是IE6)却是另一回事(在浏览器呈现页面之前,需要10秒以上的时间)。

我知道其中一个主要原因是DOM操作,这在IE6 (参见http://www.quirksmode.org/dom/innerhtml.html)下是一场灾难。

这可以被认为是前端Javascript框架(即GWT)的一般问题,但执行相同功能证明的简单代码(见下文)。事实上,在IE6下- getSomeGWT()需要400ms,而getSomeGXT()需要4秒。这是一个x10因素,对用户体验产生了巨大的不同!

代码语言:javascript
复制
private HorizontalPanel getSomeGWT() {
        HorizontalPanel pointsLogoPanel = new HorizontalPanel();
        for (int i=0; i<350; i++) {
            HorizontalPanel innerContainer = new HorizontalPanel();
            innerContainer.add(new Label("some GWT text"));
            pointsLogoPanel.add(innerContainer);
        }
        return pointsLogoPanel;
    }

    private LayoutContainer getSomeGXT() {
        LayoutContainer pointsLogoPanel = new LayoutContainer();
        pointsLogoPanel.setLayoutOnChange(true);
        for (int i=0; i<350; i++) {
            LayoutContainer innerContainer = new LayoutContainer();
            innerContainer.add(new Text("just some text"));
            pointsLogoPanel.add(innerContainer);
        }
        return pointsLogoPanel;
    }

因此,要解决/缓解这个问题,需要- a.减少DOM操作的数量;或者b.用innerHTML替换它们。

AFAIK,(a)只是使用GXT的副作用,(b)只有UiBinder才有可能,而GXT还不支持它。

有什么想法吗?

提前感谢!

EN

回答 2

Stack Overflow用户

发布于 2011-05-25 20:39:06

我怀疑这与以下内容有关:

代码语言:javascript
复制
pointsLogoPanel.setLayoutOnChange(true);

这将强制调用每个附加组件的布局,并可能导致您看到的差异。

票数 0
EN

Stack Overflow用户

发布于 2012-07-05 07:11:10

GXT布局容器功能更强大,但也是有代价的。它们可能非常强大,尤其是在使用RowLayout等布局时。

我的第一个问题是,您希望这些嵌套容器具有哪些功能?动态调整大小,高级调整大小选项/比例?或者GWT容器或普通HTML容器就足够了吗?

如果您确实决定使用GXT布局容器,那么应该从禁用layoutOnChange选项开始。因为每次向容器添加子对象时,启用该选项都会导致额外的处理,并且可能会使浏览器在该时间点重新呈现。

因此,禁用layoutOnChange后,只需在for循环之后在pointsLogoPanel上调用layout()即可。但是由于您甚至还没有将它添加到父容器中,所以一旦添加了pointsLogoPanel,您就可以简单地在父容器上调用layout()。这不会解决所有的性能问题,但可能会有很长的路要走。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2868845

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档