如何中止正在进行的GWT RequestBuilder请求?

时间:2012-04-06 07:18:38

标签: java gwt

我有一些GWT(2.4)RequestBuilder的查询可能需要很长时间才能执行。在这些情况下,我想允许用户取消请求。因为只有查询中止服务器端的处理才会产生任何有害的副作用。如果解决方案涉及任何问题,即使浪费的服务器端CPU周期也无关紧要。以下是一个例子:

RequestBuilder requestBuilder = new RequestBuilder(
    RequestBuilder.GET, FOOBAR_SERVICE_URL);

 requestBuilder.sendRequest("",
   new RequestCallback<ResultList>() { .... });

// I'd like to cancel the request when a Cancel button is pressed

你知道怎么做吗?

2 个答案:

答案 0 :(得分:4)

sendRequest()的{​​{1}}方法返回实例RequestBuilder类,该类具有Request方法,允许您取消请求。

E.g。

cancel()

答案 1 :(得分:0)

我从来没有使用过RequestBuilder,所以我不能确定没有更好的机制或者你已经描述过的功能。

执行此操作的一种方法是保留对回调的引用,如果用户按下“取消”,则在回调上设置一个标记,表示它已被取消(setCancelled(true))。收到响应时,检查该标志,如果是,则只丢弃响应。

我认为你实际上并不能“杀死”这些请求。