2011-06-20 66 views

回答

2

AFAIK,您不能取消服務器端調用歸還處理一旦啓動。最多可以有一些客戶端(瀏覽器)端邏輯忽略回調結果。無論如何,我會建議您使用ASP.NET AJAX(UpdatePanelScript Services),而不是使用ICallbackEventHandler。它使用起來非常簡單,而且更加靈活。此外,您還可以選擇取消回調:請參閱this article取消更新面板回調(注意,取消確實意味着停止等待(&忽略)回調結果,服務器端處理將會發生)。

3

搜索相當廣泛,發現它可以Cancel Server Tasks with ASP.NET & AJAX

雖然我不擅長與AJAX,發現了一些鏈接,可以幫助你,

下面是如何Canceling Server Tasks with ASP.NET & AJAX和這裏的一對東西forum thread類似於你的問題。

希望它有幫助!

1

向服務器發起請求後,客戶端無法取消它。忽略任何可能的「可取消方法」的機制,你已經開始向服務器發出請求。任何進一步的通信都會導致一個新的請求,以便原始請求將繼續,直到完成。記住HTTP是一種無狀態協議,每個請求都不知道任何以前的請求,因此,它如何取消先前的請求?

如果您確實需要取消可能仍在服務器上處理的長時間運行的任務,則最好是忽略服務器響應,您需要自己烘焙該支持,例如Web服務器將不會本地支持它。要做到這一點,你可能需要一些方法來保持跨多個http請求的任務狀態,並讓原始請求(運行該任務的那個請求)監視某種取消標誌。

只要記住,在上面的場景中,您不會取消請求,而是請求正在運行的任務。