正如标题所说,当用户拥有一个全新安装的软件时,他们可能需要等待3-5分钟才能在后端运行数据库以获取GUI中的数据。因此,在加载期间,我只是显示"请等待...."。
在我的GWT代码中,我使用自己的Timer类每2秒回调一次结束代码,以通过JSON获得最终结果。我的问题是,GWT代码如何知道它是第一次从后端数据库接收非空的JSON数据?因为我想在JSON对象不为空时立即刷新页面。
答案 0 :(得分:1)
如果您使用的是RequestBuilder,下面是一个简单的示例,表示在发送JSON请求时显示等待消息,并在收到响应时将其隐藏。
import com.google.gwt.http.client.Request;
import com.google.gwt.http.client.RequestBuilder;
import com.google.gwt.http.client.Request;
import com.google.gwt.http.client.RequestCallback;
import com.google.gwt.http.client.Response;
RequestBuilder requestBuilder = new RequestBuilder(RequestBuilder.POST, jsonServiceUrl);
requestBuilder.setHeader("Content-Type", "application/json; charset=utf-8");
RequestCallback jsonCallback = new RequestCallback () {
@Override
public final void onResponseReceived(Request request, Response response) {
hideWaitingMessage();
handleJsonResponse(request, response);
}
@Override
void onError(Request request, Throwable exception) {
hideWaitingMessage();
handleError(response, exception);
}
};
String requestData = null;
displayWaitingMessage();
Request request = requestBuilder.sendRequest(requestData, jsonCallback);