對於某些請求,呼叫webmethod並返回結果的過程需要較長的時間,有時,不能控制從請求資料的web服務,也不能控制這些服務的效能或響應時間,因此,應該考慮非同步使用web服務,發出非同步請求的asp.net應用程式可以在其內部的soap請求等待響應的同時,執行其他程式設計任務,在asp。net應用程式完成其他任務後,在從web服務那裡獲得結果.
要非同步使用web服務,可以使用begin***,end***方法,其中,***是你的web方法名,另外,還可以使用iscompleted來檢查web服務是否已經完成.這是一種方法,本文將討論在.net2.0中非同步呼叫web服務的另外一種方法,當新建乙個webmethod,在客戶端引用這個web服務後,除了可以看到這個web方法外,還可以看到 ***async,*** completed著兩個方法,下面就應用這兩個自動生成的方法來非同步呼叫web服務:
首先新建乙個web服務,用於返回sql server2000中pubs資料庫的authors表的全部記錄,非同步呼叫web服務,web服務部分不需要做任何改動,下面是c#**:
[webmethod]
public
dataset ba_operationclassgetlist()
using
system;
using
system.collections.generic;
using
system.componentmodel;
using
system.data;
using
system.drawing;
using
system.text;
using
system.windows.forms;
namespace
...private
void
button1_click(
object
sender, eventargs e)
private
void
service_ba_operationclassgetlistcompleted(
object
sender, localhost.ba_operationclassgetlistcompletedeventargs e)
private
void
form1_load(
object
sender, eventargs e)
} 至此,這個非同步使用web服務的**已經書寫完畢,我們就可以在等待這個web響應的同時可以顯示乙個滾動條或者提供乙個取消按鈕,可以隨時終止web響應.
同步呼叫與非同步呼叫
一 什麼是同步呼叫與非同步呼叫 定義 1 同步就是整個處理過程順序執行,當各個過程都執行完畢,並返回結果。2 非同步呼叫則是只是傳送了呼叫的指令,呼叫者無需等待被呼叫的方法完全執行完畢 而是繼續執行下面的流程。例如,在某個呼叫中,需要順序呼叫 a,b,c三個過程方法 如他們都是同步呼叫,則需要將他們...
JQ 非同步呼叫
請求 test.php 網頁,忽略返回值。jquery 程式 get test.php 請求 test.php 網頁,傳送2個引數,忽略返回值。jquery 程式 get test.php 顯示 test.php 返回值 html 或 xml,取決於返回值 jquery 程式 get test.ph...
html 非同步呼叫
我們的例項在 open 的第三個引數中使用了 true 該引數規定請求是否非同步處理。true 表示指令碼會在 send 方法之後繼續執行,而不等待來自伺服器的響應。onreadystatechange 事件使 複雜化了。但是這是在沒有得到伺服器響應的情況下,防止 停止的最安全的方法。通過把該引數設...