2011-10-26 32 views
0

在我的Flex應用程序中,我應該在哪裏存儲會話數據?Flex中的客戶端控制

我的業務代碼以SOA方式公開,客戶端代碼和後端之間的通信發生在非常精確的時刻,但我必須在flex客戶端中保留變量,以便用戶可以在發生故障時恢復。我希望事件的流程可行。

  1. USER1登錄,使一些行動

  2. 失敗是由於突發事件(註銷未在適當的時間,在客戶端代碼異常,關閉瀏覽器,通信故障等)

  3. 用戶2登錄,做出一些操作併成功提交

  4. user1再次登錄並繼續他在第2點離開的位置,因爲客戶端應用程序爲user1加載了sharedObject

是與shraredObjects這是否可行?什麼是常見的做法來處理這個?我也不能強加給用戶來調整他/她的瀏覽器接受共享對象。

在此先感謝

PS:我不想使用客戶端和業務代碼之間細粒度的通信來控制客戶端的當前狀態,業務代碼是SOA的風格,並且還支持bean在BlazeDS中使用很重。

+0

我會建議你看看任何MVC框架。 Robotlegs會更喜歡http://www.robotlegs.org/ –

+0

感謝您向我介紹robotlegs,我非常喜歡這些文檔,如果我必須從頭開始,我會嘗試一下,實際上我使用的是一層AS3與Spring Web Flow集成,可以利用客戶的服務,並且與大多數機器人腿模式有一些相似之處。 – user311174

回答

0

只要SharedObject是關聯數組,你可以添加當前用戶名鍵,當你存儲數據:

sharedObject.data[user_name + "x"] = x; 

甚至爲每個用戶創建單獨的共享對象文件:

sharedObject = SharedObject.getLocal(user_name); 
sharedObject.data["x"] = x; 

但我最好在服務器上存儲當前狀態。這可以通過註銷或定時器事件來完成,以防止繁重的通信。

+0

是的,這是,我希望我可以投票給你。放一個計時器也是一個好主意。 – user311174