2009-02-18

取消正在執行的 WebService (ASP.NET AJAX)

假設我們有一個 Web service 是 Demo.Service1.SayHello, 如果我們想要在發出要求之後能夠取消的話, 可以用以下的方式

1. 宣告一個 executor 變數來存放等會兒發出的 web service request

2. 新增一個 invokingRequest 的事件處理, 像這樣

var executor = null;
Sys.Net.WebRequestManager.add_invokingRequest(function(sender, args) {
    executor = args.get_webRequest().get_executor();
})

3. 最後再寫一個函式在你想要取消的時候呼叫, 以取消 web service request

function abortRequest() {
    if (executor.get_started() && !executor.get_aborted() && !executor.get_responseAvailable()) {
        executor.abort();
    }
}

這樣就 OK 了!

 

keywords: webservice, asp.net ajax, cancel, abort, executor, invokingRequest