有沒有辦法取消/中止請求工廠請求?使用GWT 2.3取消GWT RequestFactory請求
3
A
回答
3
另一種選擇是創建一個替代com.google.web.bindery.requestfactory.shared.RequestTransport
類型,而不是使用DefaultRequestTransport
。這一點(以及BobV方法的一個缺點)是,你不會知道什麼時候在服務器上的請求中殺死它,所以它可能已經運行了你的一些方法 - 你不會從它們中獲得任何反饋,你會停止傳出的請求。
我懷疑這就是爲什麼RF沒有這個功能,就像RPC一樣。請考慮甚至RPC通過或RequestBuilder的情況 - 那些通知服務器他們已經改變了主意,並且不運行請求?我的理解是,他們不 - 他們早期關閉的唯一方法是當他們嘗試讀取/寫入響應,並且由於連接已關閉而發生tcp錯誤。 (這可能是我錯了,另一個線程留意tcp連接的狀態,並調用thread.stop(Throwable)
,但已停止使用quite a while。)
一個想法是將消息發送到服務器,告訴它從同一會話中刪除其他請求 - 但這需要積極參與您的服務器代碼,但可能在ServiceLayerDecorator
子類型中通用,可能至少在invoke
,loadDomainObject(s)
和getSetter
等等中。這很明顯是要求GWT爲你構建它,雖然...
4
調用fire()
方法後無法取消請求。考慮構建定製Receiver
基類如下述:
public abstract class CancelableReceiver<V> extends Receiver<V> {
private boolean canceled;
public void cancel() {
canceled = true;
}
@Override
public final void onSuccess(V response) {
if (!canceled) {
doOnSuccess(response);
}
}
protected abstract void doOnSuccess(V response);
}
的圖案可以重複在Receiver
類型的其他方法。
相關問題
- 1. GWT RequestFactory和多個請求
- 2. 攔截GWT RequestFactory請求
- 3. 如何重新發送GWT RequestFactory請求
- 4. GWT RequestFactory:在ClosingHandler中發送請求
- 5. GWT RequestFactory與Objectify:ServerFailure錯誤時返回請求時觸發
- 6. GWT的RequestFactory發射請求時出錯:org.springframework.beans.factory.NoSuchBeanDefinitionException
- 7. GWT RequestFactory:如何使用每個請求的單個EntityManager
- 8. GWT Atmosphere + RequestFactory
- 9. GWT RequestFactory入門
- 10. GWT requestFactory驗證
- 11. GWT requestFactory搜索
- 12. GWT RequestFactory SuperDev
- 13. GWT RequestFactory + CellTable
- 14. GWT RequestFactory性能
- 15. GWT RequestFactory與maven
- 16. 如何從GWT RequestFactory
- 17. Hibernate ResultTransformer和gwt requestfactory
- 18. GWT RequestFactory的例子?
- 19. 將HTTP_USER_AGENT添加到Django RequestFactory請求中?
- 20. 取消URL請求
- 21. ASIHTTPRequest請求取消
- 22. 取消ASIHTTP請求
- 23. 取消getUserMedia請求
- 24. 取消XHR請求
- 25. AFHTTPRequestOperation取消請求
- 26. 取消FB.api(...)請求
- 27. 取消HTTP請求
- 28. 請求被中止:請求被取消
- 29. 鉻:GET請求取消CORS HTTPS請求
- 30. 簡單的GWT RequestFactory崩潰
正如你所指出的,感謝,並不真正解決問題,因爲服務器仍然認爲它是繼續處理請求。 我在這裏創建了一個問題:http://code.google.com/p/google-web-toolkit/issues/detail?id=6610 – fabiangebert