GWT代码拆分和碎片

Nav*_*Nav 2 gwt split

在我的大GWT应用程序中,我试图拆分初始下载,它发生了但我混淆了Leftover和独家片段.因为例如当我使用GWT.runAsync - > onSuccess - >"Window.alert("blob blob");" 在onModuleLoad上导致下载1MB大小的片段!我认为这是其他初始片段,不是吗?一般来说,我的问题是如何将剩余或初始片段更改为独占片段?

RGDS

纳维德

and*_*lva 5

通常使用GWT.runAsync方法,您可以创建独占片段或剩余片段.为了将一段代码从初始下载移动到独占片段,您不仅必须使用runAsync方法,还必须确保在应用程序的同步部分中未引用runAsync方法中的代码.

如果满足此条件,则您的代码可以以独占片段(如果代码未被其他runAsync方法使用)或剩余(如果在多个runAsync方法中引用)结束.

//Class A is referenced only here!
GWT.runAsync(new RunAsyncCallback() {
    @Override 
    public void onSuccess() {
        a = new A();                
    }

    @Override
    public void onFailure(Throwable reason) {
       ...
    }
});

....

//Class B is referenced in different points but always inside async calls!
GWT.runAsync(new RunAsyncCallback() {
    @Override 
    public void onSuccess() {
       b = new B();             
    }

    @Override
    public void onFailure(Throwable reason) {
       ...
    }
}); 

....

GWT.runAsync(new RunAsyncCallback() {
    @Override 
    public void onSuccess() {
       b = new B();             
    }

    @Override
    public void onFailure(Throwable reason) {
       ....
    }
}); 
Run Code Online (Sandbox Code Playgroud)

相对于A类的代码将在一个独占片段中,B类将在剩余的片段中.

一般来说,我建议您使用编译报告来了解代码拆分中发生的情况.

另外:在onModuleLoad中调用runAsync没有多大意义.1MB?你确定吗?也许发布一个例子,我可以尝试了解发生了什么


小智 5

代码拆分在开发模式下不起作用