1

Seaside では、これらすべてのrenderContentOn:メソッドで、HTML キャンバス オブジェクトを使用して DOM ツリーを組み立てることができます。

<div>スタイリングに Twitter Bootstrap を使用していて、ボイラープレート コード ( s en mas) を常に書きたくないので、現在コンポーネント用のヘルパーをたくさん書いています。

これがセットアップされる方法については、私にとって最も簡単な方法は、単純に (これらのヘルパーでの使用を避けたいwith: aBlock)、ラッピング DIV の HTML を次のように書き出すことです。

html html: '<div class="control-group">'.

これをしない理由はありますか?欠点はありますか?

4

3 に答える 3

6

HTML キャンバスを使用すると、さまざまな利点があります。

  • HTML キャンバスは、有効なタグ、有効なタグ構造、すべてのタグが (コンパイル時に) 適切に閉じられていること、およびコンテンツが適切にエスケープされていることを保証します。
  • HTML キャンバスは、有効な属性、すべての属性が適切に閉じられていること、およびコンテンツが適切にエスケープされていることを保証します。
  • 上記の 2 つの結果として、HTML キャンバスはクロスサイト スクリプティング (XSS) 脆弱性の可能性を自動的に回避します。
  • renderOn:HTML キャンバスは、タグ (単純な関数呼び出し)、プレゼンター (オブジェクト内)、およびコンポーネント (コンポーネントの) の構成を有効にすることで、再利用性を向上させrenderContentOn:ます。
  • HTML キャンバスは、不要な空白の生成を回避します。
  • HTML キャンバスを使用すると、送信者、実装者、リファクタリング エンジン (メソッドへの抽出、コンポーネントへの抽出、インライン メソッド、自動書き換えなど) など、Smalltalk IDE が HTML コードに対して提供する標準ツールを使用できます。

まれに、HTML キャンバスを使用する価値がないことに同意します。たとえば、外部ソースからの大きな静的ジャンクをページに埋め込む必要がある場合などです。

于 2012-05-24T20:46:34.900 に答える
1

そのような静的な html ピースをレンダリングすることの本当の欠点はないと思います。

ただし、Twitter ブートストラップの Seaside 統合を確認することをお勧めします: http://twitterbootstrap.seasidehosting.st/

于 2012-05-24T15:51:03.153 に答える
0

Lukas の主張の 1 つを言い換えると、それは基本的に DRY ではありません。1回のみの使用であれば問題ありません。これを複数回使用する必要がある場合は、キャンバスを使用すると、smalltalk が提供するクリーンな再利用機能をすべて使用できます。

于 2012-05-25T13:15:23.533 に答える