Клиентский контроль во Flex - PullRequest
0 голосов
/ 26 октября 2011

Где я должен хранить данные сеанса в моем приложении Flex?

Мой бизнес-код представлен SOA-способом, и связь между клиентским кодом и бэкендом происходит в очень точные моменты, но мне нужно сохранять переменные в гибком клиенте, чтобы пользователь мог возобновить работу в случае сбоя. Я хотел бы, чтобы этот поток событий был осуществимым.

  1. user1 входит в систему и выполняет некоторые действия

  2. сбой из-за непредвиденных событий (несвоевременный выход из системы, исключение в коде клиента, закрытый браузер, сбой связи и т. Д.)

  3. user2 входит в систему, выполняет некоторые действия и успешно совершает

  4. user1 снова входит в систему и возобновляет работу с того места, где он оставил в точке 2, поскольку клиентское приложение загрузило sharedObject для user1

Возможно ли это с shraredObjects? Какова обычная практика для решения этой проблемы? Также я не могу навязать пользователю настройку его / его браузера, чтобы он принимал sharedObjects.

Заранее спасибо

PS: я не хочу использовать детальную связь между клиентом и бизнес-кодом для управления текущим состоянием клиента, бизнес-код в стиле SOA, а также компонент поддержки, используемый в BlazeDS, сильно загружен.

1 Ответ

0 голосов
/ 26 октября 2011

Как только SharedObject является ассоциативным массивом, вы можете добавить текущее имя пользователя к ключу при сохранении данных:

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

или даже создать отдельный файл sharedObject для каждого пользователя:

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

Но я бы лучше сохранил текущее состояние на сервере.Это может быть сделано при выходе из системы или при событии таймера, чтобы предотвратить интенсивную связь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...