2011-04-26 95 views
0

我想使用RPC調用從服務器 - >數據庫中獲取數據,然後填充我的客戶端小部件,如列表框,網格等。問題是,由於調用是異步的,它不能保證客戶端運行時將等待服務器調用返回,然後使用回調結果中的數據填充小部件。有沒有辦法做到這一點?遠程實現GWT列表框

問候, Ĵ

回答

0

在設計上,有沒有辦法讓在GWT同步請求。但是,您可以避免顯示小部件(也可能顯示微調),直到數據從服務器返回。一種方法是在從服務器獲取數據時使用的AsyncCallback中調用的方法中顯示小部件。

下面是一個例子(實際上,您可能會在表單級別執行此操作,而不是小部件級別,但您會明白)。

AsyncCallback<List<Option>> callback = new AsyncCallback<List<Option>>() { 
    public void onFailure(Throwable caught) { 
    processError(caught); 
    } 

    public void onSuccess(List<Option> result) { 
    updateListBox(result); 
    showListBox(); 
    } 
}; 
myRemoteService.getOptions(callback); 
0

您可以顯示一個模式對話框(包含「獲取數據」的消息,或任何票友),當你開始獲取數據,然後當你的RPC調用終止你可以關閉對話框。另一種方法是使用一個小的加載面板,根據需要激活/禁用:示例爲here