二重送信とは何かを明確にする: ユーザーが送信ボタンを 2 回クリックすると、サーバーは同じ POST データを 2 回処理します。これを回避するために (1 回の送信後にボタンを無効にすることは別として)、Struts などのほとんどの Web フレームワークはトークン メカニズムを提供します。GWTでこれに相当するものを探しています。
3260 次
2 に答える
2
2 回送信するのを避けたい場合は、次のようにします。
boolean processing = false;
button.addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
if (!processing) {
processing = true;
button.setEnabled(false);
// makes an RPC call, does something you only want to do once.
processRequest(new AsyncCallback<String>() {
@Override
public void onSuccess(String result) {
// do stuff
processing = false;
button.setEnabled(true);
});
});
}
}
});
それが要点です。
于 2010-12-29T18:30:55.093 に答える
0
これはあなたに役立ちます -
final Button btn = new Button("Open");
btn.addSelectionListener(new SelectionListener<ButtonEvent>() {
@Override
public void componentSelected(ButtonEvent ce) {
btn.setEnabled(false);
openMethod(name, new AsyncCallback<Void>() {
public void onFailure(Throwable caught) {
btn.setEnabled(true);
}
public void onSuccess(Void result) {
MessageBox.alert(info, "Opened Window", null);
btn.setEnabled(true);
window.hide();
}
});
}
});
于 2015-01-30T10:46:03.133 に答える