Flex中的客户端控件

时间:2011-10-26 10:08:20

标签: flex transactions

在我的flex应用程序中,我应该在哪里存储会话数据?

我的业务代码以SOA方式公开,客户端代码和后端之间的通信发生在非常精确的时刻,但我必须将变量保存在flex客户端中,以便用户可以在发生故障时恢复。我希望这一系列活动是可行的。

  1. user1登录并执行一些操作

  2. 由于意外事件导致失败(退出时间不合适,客户端代码异常,浏览器关闭,通讯故障等)

  3. user2登录,进行一些操作并成功提交

  4. user1再次登录并恢复他在第2点离开的位置,因为客户端应用加载了user1的sharedObject

  5. 这对shraredObjects来说是否可行?,处理这个问题的常见做法是什么?我也不能强迫用户调整她/他的浏览器来接受sharedObjects。

    提前致谢

    PS:我不想在客户端和业务代码之间使用细粒度的通信来控制客户端的当前状态,业务代码是SOA风格,而且BlazeDS中使用的支持bean负载很重。 / p>

1 个答案:

答案 0 :(得分:0)

只要SharedObject是关联数组,您就可以在存储数据时将当前用户名添加到key:

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

甚至为每个用户创建单独的sharedObject文件:

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

但我最好将当前状态存储在服务器上。这可以在注销或计时器事件时完成,以防止大量通信。