2011-08-16 8 views
4

なぜ私のアプリケーションの1つが非常にゆっくり実行されているのか探していました。アプリケーションは、グリッドを生成して表示し、作業タスク(表のセルとしてレンダリング)を使用してデータを生成します。各タスクの内部には、<a href="...があり、タスクに関するさらに詳しい情報が表示されます。HtmlGenericControl( "a")対HtmlAnchor

これはすべてコードビハインドから動的に構築されているため、HTMLTableRows/Cellsを使用して行とセルを作成し、次にControlsプロパティを使用してHTMLAnchorsを追加しました。私はHTMLAnchor.HRefを使用しました属性、HTMLTableCell.ColSpanなど

を設定してるときはいつでも、私は例えば、私は一般的なHTMLGenericControlを使用して、そのAttributesコレクションを使用している場合ことに気づきました

HTMLGenericControl a = new HTMLGenericControl("a"); 
a.Attributes["href"] = task.getLink(); 

それは私が考えたが、同じことをやっての好ましい方法である持っているだろうかよりもかなり速く実行されます。

HtmlAnchor a = new HTMLAnchor; 
a.HRef = task.getLink(); 

誰もがこの見かけ上の余分な「オーバーヘッド」はどこから来るのための任意の説明を持っていますか?

EDIT

誰が私の説明で混乱している場合は、私がscreenshotを持っている同じプロジェクト、のために別の質問を投稿しました。

+4

あなたは遅いとはどういう意味ですか? HTMLをレンダリングするのにブラウザがしばらく時間がかかりますか?それとも、HTMLを生成するのに時間がかかりますか? system.webセクションのWeb.Configに、次の ''を追加すると、費やしたのは –

+0

@s_hewitt本当に便利です。ページロードの開始と終了とレンダリングの開始と終了の間に最大の遅延があるように見えます。 GenericControlアプローチを使用すると、時間はほぼ半分になります。 – Arj

+0

ページを処理する合計時間は、レンダリングとどのくらい比較されますか?たとえば、トレースの合計時間が1秒ですが、ページがブラウザにロードされるまでに5秒かかる場合は、ページの転送が遅くなるか、レンダリングが遅くなります。 –

答えて

5

@subkamran私は同じ考えを持っていましたが、実際にはそれを探した後、実際にHTMLAnchorHTMLGenericControlの両方が同じ親からサブクラス化されました:HTMLContainerControlです。重要な違いの1つは、HTMLAnchorIPostBackEventHandlerを実装して「ServerClick」イベントを処理することです。これは確かに遅さに何かを追加します...