如标题所述,当用户安装了全新的软件时,他们可能需要等待3-5分钟才能使数据库在后端运行,以在GUI中获取数据。因此,在加载期间,我只显示“请稍候...”。
在我的GWT代码中,我使用自己的Timer类每隔2秒回调一次后端代码,以通过JSON获得后端结果。我的问题是,GWT代码如何知道这是第一次从后端数据库接收非空JSON数据?因为我想在JSON对象不为空时立即刷新页面。
最佳答案
如果您使用的是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);