1

我已经实施了这篇文章中的建议,并在第一次点击后禁用了我的按钮。如何在 GWT 应用程序中防止 DoubleSubmit? 我想知道的是,在我的失败和成功方法中重新启用按钮后,它是否会始终重新启用。还有什么地方我可以放置一些我总是希望在服务器回复时执行的代码,而不是在失败和成功方法中复制它

4

1 回答 1

3

我确实认为每次都会被调用onSuccess()onFailure()

至于有一个地方可以放置在获得对服务器的响应时将始终运行的代码,您可以创建一个AsyncCallback其中包含代码onFailure()onSuccess()方法的代码。然后,您可以在AsyncCallback每次创建AsyncCallback.

public MyAsyncCallback<T> extends AsyncCallback<T>(){

    @Override
    public void onFailure(Throwable caught){
        //Do something
        onResponse()
        failed(caught);
    }

    @Override
    public void onSuccess(T result){
        //Do something
        onResponse()
        succeeded(result);
    }

    public void onResponse(){
        // Do something or nothing by default
    }

    public abstract void failed(Throwable caught);

    public abstract void succeeded(T result);

};

每当您想创建一个AsyncCallbackjust use时MyAsyncCallback

AsyncCallback callback = new MyAsyncCallback(){

    @Override
    public void failed(Throwable caught){
        //Do something
    }

    @Override
    public void succeeded(T result){
        //Do something
    }  

    // Optionally override onResponse() if needed
    @Override
    public void onResponse(){
        //Do something
    }

}
于 2013-03-21T16:38:37.973 回答