如标题所述,当用户安装了全新的软件时,他们可能需要等待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);

08-03 17:02