この質問に続いて、私は最近尋ねました: Document.createElement()を理解する
コンテキストは次のとおりです。
- 私のGWTGUIには、テキストを保持するテキストゾーンがあります
- ユーザーは、このテキストゾーンで単語(または単語のシーケンス)を選択し、それを/それらをに変換することができます
highlighted text
highlighted texts
ユーザーの声を聞くことができる必要があります:クリック、右クリック、ドラッグアンドドロップ操作- テキストゾーンに1000があるシナリオ
highlighted text
は不可能ではありません。
私は疑問に思っていました:
- GWTでDOM要素を直接操作するのは悪いアプローチですか?(ウィジェットを使用せずに)
- SpanElementにリスナーを追加するようなことをするのは悪いアプローチですか?メモリリークを引き起こす可能性はありますか?
- そのようなことを達成するための最良のアプローチは何ですか?span要素を使用する単純なカスタムウィジェットを使用していくつかのテストを実行しました。RevModeでは、1000個のウィジェットをRootPanelに追加するのに約6〜10秒かかります。DOM要素を直接使用すると、この操作時間は1秒未満になります(最適化では200ミリ秒未満でも)。
編集
@Gilbertoのアドバイスの後で行った実際のテストによると、パフォーマンスは問題にならないはずです。http://jmichelgarciagwt.appspot.com/DOMTesting.html
それでも、質問1)と2)についてフィードバックをいただければ幸いです。