1

私はGWTアプリケーションを実行していますが、スピードトレーサーはペイントプロセスに時間がかかると言っているので、Google 2010 - IOセッション(「GWTを使用したパフォーマンスのためのアーキテクチャ」)のpdfを読むと、次の文が表示されます:

ウィジェットはいつ使用する必要がありますか?
コンポーネントがイベントを受信する必要
があり、かつ親ウィジェットでイベントをキャッチする方法がない場合

私は最初の条件に同意します (textBox や画像などのコンポーネントが MouseOver、MouseClick などのイベントを受け取る必要があるため、ウィジェットを使用したい) が、私の質問は 2 番目の条件に関するものです。実際、Javascript で DOM を操作する任意の要素/コンポーネントに (「常に」) アクセスできるため、どの場合に親ウィジェットでイベントをキャッチする方法がないかわかりません。ここでは、Javascript を使用して Widgets (ui:binder などの ui:field で識別される) 要素と DOM 要素 (id="" で識別される) にアクセスできると仮定しています。

なぜ私が間違っているのか、または「親ウィジェットでイベントをキャッチする方法がない」場合の例を教えていただけますか?

ありがとうございます、

4

1 に答える 1

1

それは、「親ウィジェットでイベントをキャッチするコードを配置する簡単な方法がない」ということです。コンポーネント化がすべてです。イベント処理コードをコンポーネントの外に置きたくないし、イベント処理コードをコンポーネント外の要素にアタッチしたくありません。そのため、コンポーネントは依然としてウィジェットですが、内部では可能な限り HTML とイベント バブリングを使用しようとしています。

実際には、それはコンポジット内で使用することを意味しHTMLPanel(またはRenderablePanel、より良いパフォーマンスのために、2.5.0 RC1 を使用していて少し冒険好きな場合)、そうでない場合はCellWidget(UiRenderer特定の子要素からのイベントのバブリングを簡単に処理できるようにするために) を使用します。

于 2012-06-29T22:47:39.350 に答える