我想使用RPC調用從服務器 - >數據庫中獲取數據,然後填充我的客戶端小部件,如列表框,網格等。問題是,由於調用是異步的,它不能保證客戶端運行時將等待服務器調用返回,然後使用回調結果中的數據填充小部件。有沒有辦法做到這一點?遠程實現GWT列表框
問候, Ĵ
我想使用RPC調用從服務器 - >數據庫中獲取數據,然後填充我的客戶端小部件,如列表框,網格等。問題是,由於調用是異步的,它不能保證客戶端運行時將等待服務器調用返回,然後使用回調結果中的數據填充小部件。有沒有辦法做到這一點?遠程實現GWT列表框
問候, Ĵ
在設計上,有沒有辦法讓在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);
您可以顯示一個模式對話框(包含「獲取數據」的消息,或任何票友),當你開始獲取數據,然後當你的RPC調用終止你可以關閉對話框。另一種方法是使用一個小的加載面板,根據需要激活/禁用:示例爲here