GWT GWT如何知道它是否第一次从后端接收非空的JSON数据?

时间:2014-11-26 15:36:37

标签: java gwt javascript-events

正如标题所说,当用户拥有一个全新安装的软件时,他们可能需要等待3-5分钟才能在后端运行数据库以获取GUI中的数据。因此,在加载期间,我只是显示"请等待...."。

在我的GWT代码中,我使用自己的Timer类每2秒回调一次结束代码,以通过JSON获得最终结果。我的问题是,GWT代码如何知道它是第一次从后端数据库接收非空的JSON数据?因为我想在JSON对象不为空时立即刷新页面。

1 个答案:

答案 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);