GWT - Разделение кода - Как GWT может узнать, какие данные загружаются в первый раз? - PullRequest
2 голосов
/ 22 ноября 2010

Мне интересно об этом. У меня есть например этот код:

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 () и их соответствующие классы?

Я также вижу, что когда я покидаю этот «контекст», они не освобождаются (фактически, если я изменяю контекст и возвращаюсь туда, когда я снова нажимаю на этот метод, он не вызывает сервер. Поэтому он использует предыдущий загруженный код ). Это правильно? :)

Приветствия

1 Ответ

2 голосов
/ 23 ноября 2010

Компилятор GWT анализирует поток вашей программы, чтобы выяснить, какие фрагменты она может загрузить позже.Если вы хотите визуально понять, что это сделано, проверьте http://code.google.com/webtoolkit/doc/latest/DevGuideCompileReport.html.

После загрузки кода большая его часть может быть кэширована, поэтому даже если пользователь переходит с страницы и затем возвращается кВаш, код не нужно будет перезагружать.

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