在Flex的Data Services中應用 異步完成標記(ACT) 設計模式
Posted on 2006-03-07 10:47 云自無心水自閑 閱讀(705) 評論(0) 編輯 收藏 所屬分類: FlexFlex是一個面向服務的框架, 借用了異步完成標記(Asynchronous Completion Token)設計模式, 代碼以異步的方式運行.
此模式將用戶的操作完成信號以及數據以異步的方式返回給用戶,
這種做法的效率比較高, 用戶不需要同步等待運行結果. 可以在服務運行的同時進行其他操作.
使用ACT模式時, 需要將服務返回的動作和數據綁定到一個異步的處理操作.
ACT必須在服務調用前進行指定. 服務調用時,用戶可以進行其他操作, 當服務結束, 用戶使用ACT接收響應并進行相應的處理.
當調用HTTP Service, RemoteObject, WebService時, Flex會返回一個數據服務調用(Data Service Call)的實例.
你可以使用 webService.send()返回的調用對象(Call Object)來進行結果處理. 你可以在調用對象中添加信息,
并在結果事件的處理函數中通過event.call得到調用對象.這就是ACT的實現機制. 代碼舉例如下:


<mx:HTTPService id="MyService" url="
" result="myHandler(event)" />


<mx:Script>
<

function storeCall()


{
// Create a variable called call to store the instance
// of the service call that is returned.
var call = MyService.send();
// Add a variable to the call object that is returned.
// You can name this variable whatever you want.
call.marker = "option1";


}
// In a result event handler, execute conditional
// logic based on the value of call.marker.
function myHandler(event)


{
var call = event.call

if (call.marker == "option1")
{
//do option 1
}
else


}
]]>
</mx:Script>在調用服務(MyService.send())時, 返回了調用對象 call
可以給調用對象添加信息 call.marker = "option1";
在服務完成的處理函數中可以使用 event.call 獲得調用對象, 從而獲得信息(call.marker).
此模式將用戶的操作完成信號以及數據以異步的方式返回給用戶,
這種做法的效率比較高, 用戶不需要同步等待運行結果. 可以在服務運行的同時進行其他操作.
使用ACT模式時, 需要將服務返回的動作和數據綁定到一個異步的處理操作.
ACT必須在服務調用前進行指定. 服務調用時,用戶可以進行其他操作, 當服務結束, 用戶使用ACT接收響應并進行相應的處理.
當調用HTTP Service, RemoteObject, WebService時, Flex會返回一個數據服務調用(Data Service Call)的實例.
你可以使用 webService.send()返回的調用對象(Call Object)來進行結果處理. 你可以在調用對象中添加信息,
并在結果事件的處理函數中通過event.call得到調用對象.這就是ACT的實現機制. 代碼舉例如下:









































可以給調用對象添加信息 call.marker = "option1";
在服務完成的處理函數中可以使用 event.call 獲得調用對象, 從而獲得信息(call.marker).