シンプルな「お待ちください」メカニズムを備えた GWT アプリケーションがあります。ボタンを押して RPC 呼び出しを送信すると、RPC が戻るまでユーザーの操作をブロックするモーダル ポップアップ ダイアログが画面に表示されます。このように、ユーザーがボタンを複数回クリックして複数の RPC を送信するのを防ぎます。これは、IFrame をロードするときを除いて、完全に機能します。この場合、iframe にインストールしたロードハンドラは呼び出されません。
/**
* Test class
*/
public class Test implements EntryPoint {
/**
* This is the entry point method.
*/
@Override
public void onModuleLoad() {
final PopupPanel popup = new PopupPanel(false, true);
popup.add(new Label("Please wait"));
popup.center();
final Frame frame = new Frame("http://www.google.com");
frame.addLoadHandler(new LoadHandler() {
@Override
public void onLoad(LoadEvent event) {
Window.alert("Event received");
popup.hide();
}
});
RootPanel.get().add(frame);
}
}
ただし、PopupPanel(false, false) を構築すると、LoadEvent がトリガーされます。注: これはコンパイル モードでのみ発生し、GWT 開発モードでは発生しません。
誰も手がかりを持っていますか?
前もって感謝します、
マイク