dijitウィジェットをレンダリングする最速の方法は何ですか?プログラムによる方法は宣言型よりも速いことを私は知っています。(参考文献)
読み込みが遅すぎるカスタムウィジェットがあります(これは、コンボボックス、ボタン、およびフィルターの追加に使用されるその他の小さなdijitウィジェットなどを備えたデータグリッドです)。
ソースを見ると、すべてのdijitウィジェットがプログラムで作成されていることがわかりますが、それらが挿入されるDOMノードもプログラムで作成されています。それは「正しい」方法ですか?
このウィジェットのレンダリングを高速化しようとしています。現在、速度テンプレート(私の会社ではstruts2 + speedを使用)とプログラムで作成されたウィジェット(placeAtおよび同様のメソッドを使用して挿入)を組み合わせてDOMノードを作成することを選択します。すでに構築されているDOMノードへのウィジェット)。
正常に動作しますが、残念ながらすべてのcssクラスがdijitによって上書きされるため、再度上書きする必要があります。これにより、かなりのオーバーヘッドが発生します。
テンプレートでは、次のように記述します。
<input id="idOfAnExistingDomNode" class="myCssClass" />
そして、そのDOMノードにFilteringSelectを挿入するには、次のように記述する必要があります。
var fieldSelect = new dijit.form.FilteringSelect({
store : jsonStore,
searchAttr : "caption",
labelAttr : "caption",
selectOnClick : true,
value : "Content"
}, "idOfAnExistingDomNode");
fieldSelect.domNode.className += " myCssClass";
FilteringSelectの作成中にmyCssClassが上書きされるため、最後の行が必要です。
この問題を回避する方法はありますか?
または、おそらく、私はこのことを間違った方法でやろうとしていますか?その「ベロシティテンプレート」については完全にはわかりません。
注:Dojoのバージョンは1.5であり、残念ながら、新しいバージョンにアップグレードすることはできません。
私のひどい英語を許してください。