我有一些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
你知道怎么做吗?
答案 0 :(得分:4)
sendRequest()
的{{1}}方法返回实例RequestBuilder
类,该类具有Request
方法,允许您取消请求。
E.g。
cancel()
答案 1 :(得分:0)
我从来没有使用过RequestBuilder,所以我不能确定没有更好的机制或者你已经描述过的功能。
执行此操作的一种方法是保留对回调的引用,如果用户按下“取消”,则在回调上设置一个标记,表示它已被取消(setCancelled(true)
)。收到响应时,检查该标志,如果是,则只丢弃响应。
我认为你实际上并不能“杀死”这些请求。