我有一个大量使用 RPC 调用的 GWT 应用程序。每当通话进行时,我想显示一个微调器图标。显示图标很容易,但我想在一个地方无缝地做到这一点,所以我不必为每个呼叫显式隐藏和显示图标。
我想我正在寻找类似于 jQuery 的 ajaxStart 和 ajaxStop 事件的东西。
有没有人做过这样的事情?
干杯锡
为什么不在 AsyncCallback 的具体实现中实现此行为,并将所有 AsyncCallback 子类化。或者,您可以使用装饰器模式,在其中使用常规 AsyncCallback 并用另一个显示/隐藏弹出窗口的模式来装饰它。
或者,如果您使用命令模式,您可以将这些事件添加到您的命令模式实现中,并且您可以注册一个处理程序,该处理程序在每次发送/接收请求时显示/隐藏弹出窗口。
回应那些暗示装饰器不够用的评论。
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);
};