2011-03-21 6 views
13

HTMLPanelの代わりにdivを使用しているときに何らかの違反がありますか?UiBinder - HTMLPanel vs. div

など。

<g:HTMLPanel> 
    <g:HTMLPanel> 
    /* Widgets, more HTML */ 
    </g:HTMLPanel> 
</g:HTMLPanel> 

答えて

8

短い答えとは対照的に

<g:HTMLPanel> 
    <div> 
    /* Widgets, more HTML */ 
    </div> 
</g:HTMLPanel> 

疑いで、生成されたコード(DevModeからか、コンパイラに-gen引数を渡す)

長い答えを見てみると:

実行時のパフォーマンスの低下は、単純なDOM要素のウィジェット、常に。さらに、HTML要素を解析することでそのDOM要素が作成されたときには、 UiBinderHTMLPanelの子としてウィジェットを見て

、それが生成するユニークなIDを持つプレースホルダー<span>を生成し、ウィジェットとそのプレースホルダを置き換えるためにHTMLPanel.addAndReplaceElementを使用します。

だから、第二のスニペットは(約)が生成されます

HTMLPanel root = new HTMLPanel("<span id='uuid'></span>"); 
HTMLPanel child = new HTMLPanel("/* Widgets, more HTML. */"); 
root.addAndReplaceElement(child, "uuid"); 
1

これは、パフォーマンス上のペナルティはありませんが、私はHTMLPanelがUiBinderサンプルメッセージの中に、(子供と)ミックスを含めることができる、ということだけウィジェットだと思いますウィジェットとHTMLタグの両方

関連する問題