1

GWTウィジェットで要素の位置を指定するベストプラクティスは何ですか?

タスクがあると想像してください: ページ レイアウトに一連のウィジェットを配置します。すべてのボタンと入力をある順序で配置するには、何を使用しますか?

  1. table/div を含む標準 HTML マークアップ + 配置用の CSS スタイル
  2. GWT ウィジェット: パネル、グリッド、テーブル + 配置用の CSS スタイル
  3. GWT ウィジェット: パネル、グリッド、テーブル + 配置用のネイティブ プロパティ

2 または 3 の場合、colspans、固定幅の列、およびパディングを使用して標準の HTML テーブルを再現するには、何を使用しますか?

ps UIBinder と XML マークアップ。GWT 2.4


私の意見: GWT の最大の利点の 1 つは、プログラマーが HTML マークアップを作成するのを防ぎ、インターフェイスにクロスブラウザー サポートを追加できることです。これらのポイントを落としてはならないので、p.3 を選択して CSS のみを装飾 (つまり、色、フォントなど) に使用することをお勧めします。

別の観点: スタイルをインラインで配置するのは悪い考えです。XML マークアップでウィジェットのプロパティを指定することにより、文字通りこれを行っています。また、GWT には、通常のレイアウトを作成するのに十分なウィジェットがありません。たとえば、collspans と固定列幅を持つ単純なテーブルを作成する必要があります。これについてどう思いますか?いくつかの Horizo​​ntalPanels を VerticalPanels に埋め込み、それらのすべてに幅/高さを指定し、これによって XML の素晴らしい論文を作成する必要があるようです。


それであなたの意見は?

4

1 に答える 1

7

GWT はひどい、ひどい、良くない、非常に悪い HTML を生成します。これはあくまで私の意見であり、他の人は同意しないでしょう。しかし、私は毎日 GWT を使用しており、無限にネストされた div とテーブルには、初心者の Web 開発者でさえ泣くほどです。また、そのスタイルはすべてインラインであるため、これらを外部スタイル シートで適用またはオーバーライドする場合は、!important宣言の山ができてしまいます。

ただし、驚くほど美しい JavaScript を生成します。かつて非常に複雑な DHTML プロジェクトを維持および開発し、IE 5.5 以降のサポートを手動で提供しなければならなかった者として、これが GWT の最良の部分であることを認めざるを得ません。

確かに、私は DHTML 純粋主義者であり、ソフトウェア開発者になるずっと前から Web 開発者でした。個人的には、HTML は構造のみを提供し、CSS はスタイリングを提供し、JavaScript はその他の機能を提供する必要があり、3 つすべてを完全に分離する必要があると考えています。GWT は最後の部分 (JavaScript) ではかなり優れていますが、GWT が生成する HTML は私の感性を刺激し、必要以上に複雑で、少なくとも 10 倍は複雑です。しかし、繰り返しになりますが、生成されたコードのほとんどは. (MS Word で作成された Web サイト、または WYSIWYG スタイルのエディターから生成された HTML を考えてみてください。)

複雑な Web ベースのアプリケーション (および Ruby on Rails アプリケーションのローリングに対する制限) を考えると、私は喜んで GWT を使用します。しかし、私のアプリはほとんどFlowPanel(HTML にコンパイルされる<div>) と GWT で生成された Javascript のコレクションであり、その上に独自の CSS があります。したがって、OP によってレイアウトされた状況では、FlowPanel を使用し、要素 (GWT フォーム要素など) を追加し、サーバー側のロジックを適用してから、外部 CSS でスタイリングを行います。

GWT を見るときは、後でアプリケーションを再設計する必要があるかどうかを検討したい場合や、デザイナーやその他の非プログラマーにテンプレート/スタイル/CSS を作成して上に適用してもらいたい場合があるかもしれません。これが来た場合、スタイルを適用せず、代わりにクラスと ID を適用するように GWT アプリを設計するときは、細心の注意を払う必要があります。

また、テストの補足として、UI テストに Selenium を使用する予定がある場合は、ID を何かにぶら下げたいと思うでしょう。生成された HTML からの xpath は実際には使用できず、長さが数百文字に及ぶ可能性があります。

そうは言っても、他の人々の経験について聞くことに非常に興味があります。特に、それらが私のものと異なる場合.

tl;dr バージョン:

  1. GWT で生成された HTML は、ネストされたテーブルとネストされた<div>s の多くの層 (必要以上)では非常に悪い
  2. GWT は CSS スタイルシートを生成しませんが、すべてのスタイリングをインラインに配置します。これにより、外部スタイルシートの使用が面倒で困難になります。
  3. GWT は、クロスブラウザー Javascript で優れた仕事をします。
  4. デフォルトでは、GWT は要素に id を付けません。そのため、Selenium のようなツールを使用する予定がある場合は、独自の id を手動で追加するか、これまでに見たことのないような驚くほど長い xpath に直面する必要があります。
于 2012-06-28T20:27:01.110 に答える