GWT делает блокировку RPC - PullRequest
       3

GWT делает блокировку RPC

1 голос
/ 05 января 2011

Можно ли сделать блокировку gwt rpc?т.е. приложение блокируется до получения ответа от сервера

Ответы [ 3 ]

4 голосов
/ 05 января 2011

Насколько я знаю, нет блокирования gwt rpc, потому что это противоположно идее асинхронного обратного вызова.

Но вы можете использовать эти два метода

  1. Таймер. Подсчитайте таймер и проверьте, есть ли возвращаемый объект, который не равен нулю, остановите и отмените таймер и продолжите свою работу. Если таймер активен, не делайте другую работу. Это очень, очень неэффективный способ. Отсутствие шаблона проектирования ОО и слишком много операторов if-else-if
  2. Вызовите Rpc и выполните все действия в методе onSuccess(). Это гарантирует, что ваш метод завершен и успешно завершен, а затем перейдите к другим методам.

Мой совет 2-й (onSuccess). Я хочу еще раз упомянуть, что блокировка никогда не бывает хорошей идеей

1 голос
/ 05 января 2011

Что ж, синхронные вызовы rpc называются разработчиками GWT как зло.У них есть очень веские аргументы ... Но вы можете добиться успеха синхронного RPC с помощью хаков ... Вот один из них, http://code.google.com/p/google-web-toolkit/issues/detail?id=4898

0 голосов
/ 05 января 2011

Самое простое решение, которое пришло мне в голову, - это «заблокировать» ваше приложение от точки, с которой начинается асинхронный вызов, до завершения заполнения, что будет в конце метода onSuccess().

Под блокировкой я подразумеваю просто показать несколько анимированных gif в середине страницы.

...