2011-06-26 5 views

答えて

6

あなたのニーズと好みに完全に依存します。プログラマーではなくデザイナーがDojoウィジェットを追加する必要がある場合は、宣言的マークアップを使用することが望ましい場合があります。しかし、HTMLマークアップがw3c検証に合格すると主張する場合は、代わりにプログラムによるアプローチを使用することをお勧めします。

フォーム全体をjavascriptオブジェクトとしてラップし、そのウィジェットのインスタンス化と検証を行うメソッドを作成できるので、私はプログラムによるアプローチが好きです。 コメント後の補足:私は通常、そのフォーム入力とdojo/dijitウィジェットをプロパティとして持つjavascriptオブジェクトを作成して、this.startDateTextBox, this.titleInlineEditorなどと呼ぶことができます。javascriptオブジェクトのコンストラクタ関数でdojoウィジェットのインスタンス化を処理します。

複数の同様のウィジェットを使用する場合は、初期設定を保持しているオブジェクトを宣言し、各クラスのマークアップ内のすべての共有プロパティを宣言的に宣言するのではなく、プログラムでロードすると、私がプログラムによるインスタンス化を好むもう一つの理由は、異なる条件に基づいてインスタンス化パラメータを変更してから、マークアップを変更するためにサーバ側で行うよりも簡単にウィジェットを起動することができるということです。

+0

「私はJavaScriptのオブジェクトとしてフォーム全体をラップし、そのウィジェットをインスタンス化して検証するメソッドを作成できるので、プログラムによるアプローチが好きです。」 – hamn

+0

上記の説明を参照してください。 –

6

バージョン1.6以降、DojoはHTML5データ属性をサポートしているため、結果のHTMLは有効です。パフォーマンスの低下にもかかわらず、宣言的なアプローチでは、UIの構造を一目で見ることができます。

私は、彼らがannouncement of the HTML5 data attribute-supportに提供スタイルとの比較をコピー:

新しいHTML5、有効なカスタム属性を活用した場合でも、長所と短所がHTML内の代わりに、JavaScriptでウィジェットを宣言するに残っています。 HTML内でJavaScriptコンポーネントを宣言すると意味的な不都合が生じます。なぜなら、HTMLはもはや純粋な意味上のマークアップではなく、特定のビジュアルコンポーネントとの緊密な結合を含んでいるからです。 dojoカスタム属性を持つ要素を見つけるためにdojo.parse()がDOMツリーを走査する必要があるため、宣言的なアプローチでは余分なCPUサイクルも発生します。プログラマチックなインスタンス化は不要なサイクルを回避し、HTMLの意味的な純度を保持します。しかし、マークアップベースのウィジェット宣言は、我々が最小限の労力で迅速なアプリケーション開発を容易にする単一の場所にウィジェットを定義して作成することを可能にすることによって、依然として強力な利点を有する。