Можно ли без проблем отображать счетчик ajax для каждого вызова GWT RPC? - PullRequest
0 голосов
/ 03 декабря 2009

У меня есть приложение GWT, которое интенсивно использует вызовы RPC. Я хотел бы отображать значок счетчика, когда происходит вызов. Значок достаточно просто отобразить, но я хочу сделать это без проблем в одном месте, поэтому мне не нужно явно скрывать и отображать значок для каждого вызова.

Наверное, я ищу что-то похожее на события jQuery ajaxStart и ajaxStop.

Кто-нибудь делал что-то подобное раньше?

Приветствие Олово

Ответы [ 2 ]

2 голосов
/ 03 декабря 2009

Почему бы вам не реализовать это поведение в конкретной реализации AsyncCallback и не создать подкласс всех AsyncCallbacks из этого.В качестве альтернативы вы можете использовать шаблон декоратора, в котором вы используете обычный AsyncCallback, и украсить его другим, который показывает / скрывает всплывающее окно.

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

1 голос
/ 23 ноября 2012

В ответ на комментарии, предлагающие декоратора, недостаточно.

abstract class AbstractAsyncCallback <T> implements AsyncCallaback <T>
{
 public AbstractAsyncCallback ()
 {
  Foo.showIcon();
 }

 @Override public void success (T t)
 {
  doSuccess(t);
  Foo.hideIcon();
 }

 @Override public void failure ()
 {
  doFailure();
  Foo.hideIcon();
 }

 public abstract void doSuccess (T t);

 public abstract void doFailure (T t);
};
...