2010-11-22 13 views
2

Im curiosités à ce sujet. Je par exemple ce code:GWT - Division de code - Comment GWT peut-il savoir quelles données sont chargées pour la première fois?

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)); 
} 

Je vois que jusqu'à ce que je clique sur button_article, les éléments sur ProfileArticles() (qui est un FlowPanel) ne coûtent pas chargés quand je démarre l'application. Alors, comment GWT peut-il savoir que cet élément sur cette classe ne devrait pas être chargé lorsque l'application démarre? Il vérifie chaque méthode sous GWT.runAsync() et leurs correspondants Class?

Je vois aussi que quand je quitte ce "contexte" ils ne sont pas libérés (en fait, si je change de contexte et j'y retourne, quand je clique de nouveau sur cette méthode, il n'appelle pas le serveur. code). Est ce bien? :)

Vive

Répondre

2

Le compilateur GWT analyse le flux de votre programme pour comprendre ce qu'il peut charger des morceaux plus tard. Si vous voulez comprendre visuellement ce que c'est fait, consultez http://code.google.com/webtoolkit/doc/latest/DevGuideCompileReport.html.

Une fois le code chargé, la plus grande partie peut être mise en cache. Ainsi, même si l'utilisateur quitte la page pour revenir à la vôtre, le code n'a pas besoin d'être rechargé.

+0

Merci pour cette déluration !!! :) – markzzz