Как правило, с помощью метода 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 будет в остатке.
В общем, я предлагаю вам использовать Скомпилировать отчеты , чтобы понятьчто происходит при разделении кода.
Также: вызов runAsync в onModuleLoad не имеет особого смысла.1 МБ?Уверены ли вы?возможно, опубликуйте пример, и я могу попытаться понять, что происходит