GWT код разделения и фрагментов - PullRequest
2 голосов
/ 12 января 2011

В моем большом приложении GWT я пытался разделить начальную загрузку, и это произошло, но я запутался в оставшихся и эксклюзивных фрагментах. Потому что, например, когда я использую GWT.runAsync -> onSuccess -> "Window.alert (" blob blob ");" в onModuleLoad это привело к загрузке фрагмента размером 1 МБ! Я думаю, что это другой исходный фрагмент, не так ли? В общем, мой вопрос: как заменить оставшиеся или исходные фрагменты на эксклюзивные фрагменты?

РГДС

Навид

Ответы [ 2 ]

5 голосов
/ 17 января 2012

Разделение кода не работает в режиме разработки

5 голосов
/ 11 февраля 2011

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...