簡體   English   中英

取消服務器端GWT呼叫

[英]Cancelling a server-side GWT call

我正在使用RequestBuilder來超時GWT請求,該請求花費的時間太長:

RequestBuilder requestBuilder = _service.getStatistics(callback);
requestBuilder.setTimeoutMillis(5000);
try {
    requestBuilder.send();
} catch (RequestException e) {
    GWT.getUncaughtExceptionHandler().onUncaughtException(e);
}

有沒有一種方法可以通知調用的遠程服務該呼叫在客戶端上已超時並且應將其取消?

除非您再次撥打電話以告知遠程服務先前的通話已取消,否則您不會!

這實際上取決於。 如果服務器正在做很多工作(並且您不在Google App Engine上),則可以保留Request並調用request.cancel()。 這將終止瀏覽器的請求,但服務器將繼續工作。

根據所返回數據的格式,可以在調用過程中讓服務器定期向客戶端刷新一些空數據。 如果客戶端取消了請求並且HTTP連接已終止,這將導致刷新引發IOException。 然后,您可以捕獲此請求並在服務器端停止處理該請求。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM