|
|
|||||
Регистрация: May 2009
Сообщений: 8
|
Синхронный обмен клиент-сервер
Всем привет. Ситуация такая: Использую связку
Java + BlazeDS + Flex, все работает прекрасно, но появилась новая задача: нужно на клиенте выполнить проверку, которую может сделать только сервер. А именно проверка добавляемой пользователем строки в таблицу на уникальность полей. Как осуществить проверку когда все запросы на сервер асинхронные? Как остановить выполнение программы до получения ответа от сервера? выполнять нужное действие в обработчике события result объекта не вариант, потому что это сильно усложняет код, когда процедура добавления строки по сути своей линейна разносить ее на части ради одной проверки очень некрасиво. |
|
|||||
Flash Aксакал
Регистрация: Jun 2005
Сообщений: 636
|
Синхронный запрос на сервер - пока не реализуем. Смотрите другие варианты
|
|
|||||
Регистрация: May 2009
Сообщений: 8
|
С этим уже смирился..
можно я приведу ужасный код а вы мне скажите что здесь можно поправить? <mx:RemoteObject id="balanceService" destination="balanceService" result="test()"/> var res = false; private function test:void { res = true; } private function main():void { .... balanceService.getTest(); while (!res); ................ } Thread.wait(res) - идея такая. Возможно ли подобным образом организовать остановку выполения во флексе? |
|
|||||
Et cetera
Регистрация: Sep 2002
Сообщений: 30,784
|
Нет, нельзя, AVM работает в одном потоке.
|
|
|||||
Регистрация: May 2009
Сообщений: 8
|
Спасибо А другие типы взаимодействия клиент-сервер?
Web-service, ... (больше не знаю) Они все асинхронные? |
|
|||||
Et cetera
Регистрация: Sep 2002
Сообщений: 30,784
|
|
|
|||||
Регистрация: May 2009
Сообщений: 8
|
Большое спасибо, вопрос исчерпан
|
|
|||||
Banned
[+5 23.05.09]
[+1 23.05.09] Регистрация: Mar 2009
Сообщений: 93
|
Можно "по-каличному" сделать синхронный запрос: через внешний интерфейс выполнять javascript'ом через ajax синхронный запрос (абсурдно, но позволяет) запрос, получать ответ и возвращать назад во флеш. На время ожидания блокировать ввод. Очень чревато, так как на время ожидания поток javascript останавливается полностью, даже таймеры и хандлеры. Если не обращать на безопасность передачи, то выполнимо.
|
|
|||||
Et cetera
Регистрация: Sep 2002
Сообщений: 30,784
|
А зачем вообще это делать?
|
|
|||||
Регистрация: May 2009
Сообщений: 8
|
To IDimitry: Спасибо ) но через Javascript это все таки слишком ))
То Etc: Я в первом вопросе объяснял зачем - чтобы встроить запрос в целую линейку разных проверок. То есть например оп реакции пользователя начнаем проверять корректность данных, проверяем введенные значения регуляркой и тд... Так вот если мы хотим одну из проверок выполнить на сервере, например проверить уникальность объекта, то нам придется разбивать цепочку проверок как минимум на две части: 1) первая часть - заканчивающаяся посылкой запроса 2) вторая часть - в обработчиках событий result и failed. Очень обидно идти на такие ухищрения ради одного boolean Может быть кто то подскажет грамотное архитектурное решение? Я сам на FLEX пишу не давно, и возможно невольно тащу сюда привычки из offline кодинга. |
Часовой пояс GMT +4, время: 05:25. |
|
« Предыдущая тема | Следующая тема » |
|
|