2010-11-22 68 views
2

我對此很好奇。我有例如下面的代碼:GWT - 代碼拆分 - GWT如何知道首次加載哪些數據?

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)的arent當我啓動應用程序加載。那麼,GWT如何知道應用程序啓動時該類上的元素不應該加載?它檢查GWT.runAsync()和他們的記者類下的每個方法?我也看到,當我離開那個「上下文」他們沒有被釋放(事實上,如果我改變上下文,我回到那裏,當我再次點擊該方法時,它不會調用服務器。因此它使用先前加載碼)。這樣對嗎? :)

乾杯

回答

2

GWT編譯器分析程序的流程找出豆腐塊稍後可以加載。如果你想直觀地瞭解它做了什麼,請查看http://code.google.com/webtoolkit/doc/latest/DevGuideCompileReport.html

加載代碼後,大部分代碼都可以被緩存,所以即使用戶離開頁面然後返回給您,代碼也不需要重新加載。

+0

感謝您的解釋! :) – markzzz 2010-11-23 12:57:18