シナリオ: 画面上にいくつかの編集コンポーネントとボタンを持つ Delphi Intraweb アプリケーションがあります。TIWEdit.OnAsyncExit と TIWButton.OnClick でフラグが設定され、アプリケーションの別のスレッドが、フラグとその他のアプリケーション データに応じて、ボタンの有効なプロパティを設定します。
TIWButton.Enabled プロパティが設定されるまでに、リクエストはすでに終了しており、IW が内部表現と HTML フォームが同期していないことを検出すると、次の対話はキャンセルされます。再同期するため、もう一度クリックする必要があります。
オンデマンドで何らかの方法で画面を更新したいと思います。
- 2 つが同期されているかどうかを調べて更新を発行するタイマーには、トラフィックとタイミングの点で欠点があります (タイマーが実行される前にボタンをクリックできます)。
- データをプッシュできる方法は素晴らしいでしょう。
- おそらく、IW には、コミットしたばかりのアクションをキャンセルせずに、保存以外の同期を行う可能性があります。
私の画面はモデル主導で構築されているため (どのコンポーネントが画面に表示されるのか、コンポーネント間の相互依存関係は何か、つまりビジネス ロジックでは予測できない)、JavaScript を追加して、ユーザーのアクションに応じてボタンを有効または無効にすることはできません。