コードの統合と再利用の効果を実現するには、より多くの例外と適応性を考慮する必要があるため、コントロールの作成は一般に、同じ機能のみを実装するモジュールよりも複雑であることがわかっています。また、ASP.NET コントロールを開発する場合、コントロールの機能や UI パフォーマンスがどれほど複雑であっても、最終的にクライアント ブラウザーで取得できるものは、HTML コードとスクリプトの単なる組み合わせです。
これらのコントロールによって生成される HTML コードについて、その形式は自由に処理できますか?では、自由ではないということは何を意味するのでしょうか? HTML コードの書式設定を確認し、HTML の階層的なインデントを適切に維持する必要がありますか?ここでは逆に、「不要な」スペースやキャリッジ リターンなど、コントロールの HTML コードと関係のないものはすべて削除するように努める必要があります。なぜ無駄なことを強調するのでしょうか?ブラウザーが HTML ソース コードを処理するとき、連続するスペースと復帰は 1 つのスペースとして処理され、表示されることがわかっています。したがって、ASP.NET コントロールが表示されるときに、HTML コードの前後または途中にある余分な無駄なスペースや改行を気にする必要はないようです。それでは、次の例を見てみましょう: <img id="analysisChart" src="ChartPic_000007.jpeg?B9FA64E7-2020-4430-AAF4-B20A51794909" usemap="#usemap_analysisChart">
<map id="usemap_analysisChart">
<エリア>...<エリア>
</マップ>
「www.downcodes.com」
上記のコード スニペットは、Dundas Web コントロールの Web チャート コントロールによって出力される HTML コードです。このChart画像をホットエリアで使用する場合は、このChartだけを使用する場合には問題がないようです。しかし、Dundas Chart をカスタム WebControl に組み合わせると、改行やインデントを含む HTML コードによって問題が発生します。レイアウトの必要があるため、このチャートをテーブルに配置し、テーブルにチャートの周囲にピクセル境界線を表示させる必要があります。本来、このチャートの見た目は単なる絵であり、この組み合わせで問題ないと思われましたが、実際にはチャートの絵が外側のテーブルを埋めることができず、そこにあります。画像の下部と表の下端には常に 3 ~ 4 ピクセルの隙間があります。このギャップは、<img /> と <map> の間のスペースと改行によって発生します (ただし、IE ではスペースとしてのみ扱われます)。
|
Dundas Web Chart はコンパイル済み DLL として公開されているため、出力される HTML 内の不要なスペースや改行を削除するのがさらに面倒になります。レンダリング ストリームから HTML コードを取り出して、タグ間のスペースと改行を手動で削除して、それを新しいコントロールの出力ストリームに出力することしかできません。この方法によりいくつかの問題は解決できますが、内部統制が複雑すぎる場合、精度と効率の点で余分な負担になります。
したがって、上記の質問から、ASP.NET コントロールを作成する場合、最終的にレンダリングされる HTML コードは、コントロールの適応性を向上させるために「コードのコンパクト性の原則」に従う必要があることがわかります。この原則に基づいて、前の例は次のようになります。
<img id="analysisChart" src="ChartPic_000007.jpeg?B9FA64E7-2020-4430-AAF4-B20A51794909" usemap="#usemap_analysisChart"><map id="usemap_analysisChart"><エリア>...<エリア></地図>
このようにして、チャート画像はそれを囲むテーブルの境界線にぴったりと隣接します。