GWT - 代码拆分 - GWT如何知道第一次加载哪些数据?

时间:2010-11-22 18:11:43

标签: gwt

我很好奇。我有这样的代码:

button_article.addClickListener(new ClickListener(){
    public void onClick(Widget w) {
        GWT.runAsync(new RunAsyncCallback() {
            public void onFailure(Throwable reason) {
                // somethings
            }

            public void onSuccess() {
                content.clear();
                content.designArticles();
            }
        });
    }
});

public final void designArticles() {
    this.add(new ProfileArticles(this.rpcService, this));
}

我看到,直到我点击button_article,当我启动应用程序时,没有加载ProfileArticles()(即FlowPanel)上的元素。那么,当应用程序启动时,GWT如何知道该类上的元素不应该加载?它检查GWT.runAsync()下的每个方法及其通讯员Class?

我也看到当我离开那个“上下文”时他们没有被释放(事实上,如果我改变上下文并且我返回那里,当我再次点击该方法时它不会调用服务器。所以它使用之前加载的代码)。这样对吗? :)

干杯

1 个答案:

答案 0 :(得分:2)

GWT编译器分析程序的流程,以确定它稍后可以加载的块。如果您想直观地了解它的作用,请查看http://code.google.com/webtoolkit/doc/latest/DevGuideCompileReport.html

加载代码后,大部分代码都可以缓存,因此即使用户离开页面然后返回到您的代码,代码也不需要重新加载。