在我的大GWT应用程序中,我试图拆分初始下载并且它发生了但我混淆了Leftover和独家片段。 因为例如当我使用GWT.runAsync时 - > onSuccess - > “Window.alert(”blob blob“);”在onModuleLoad上它导致下载1MB大小的片段!我认为这是其他初始片段,不是吗? 一般来说,我的问题是如何将剩余或初始片段更改为独占片段?
RGDS
纳维德哈尼
答案 0 :(得分: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) {
....
}
});
相对于A类的代码将在一个独占片段中,B类将在剩余的片段中。
一般情况下,我建议您使用Compile Reports来了解代码拆分中发生的情况。
另外:在onModuleLoad中调用runAsync没有多大意义。 1MB?你确定吗?也许发布一个例子,我可以尝试了解发生了什么
答案 1 :(得分:5)
代码分割在开发模式下不起作用