0

私がしばらく疑問に思っていた一般的な質問です。私はASP.NETで多くのページを記述しているため、すべてのコントロールには、で始まるタグが<asp:あり、が含まrunat="server"れています。これは、サーバー側のコントロールであることを意味します。私が疑問に思っているのは、サーバー側である必要がない場合に、サーバー側のコントロールではなくクライアント側のコントロールを使用することに利点があるかどうかです。

たとえば、次のようにするのではなく、

<asp:Label ID="lbl" runat="server" Text="This is a label" CssClass="labelclass" />

代わりに以下を使用することは、何らかの方法で(たとえば、パフォーマンスの観点から)有利でしょうか?

<label class="labelclass">This is a label</label>

4

4 に答える 4

2

サーバー側でラベル値を変更またはアクセスする意図がない場合のみ。この場合、ASP.NETはサーバー制御を解析して何かを生成するために時間を費やす必要がないため、直接HTMLを使用する方が少し速くなります。

于 2012-08-15T16:37:04.497 に答える
2

サーバー側のコントロールである必要がない場合は、クライアント側のコントロールを使用します。これにより、変換するコードが少なくなるため、レンダリングが高速になります。

私は通常、コードビハインドファイルで何らかの方法でコントロールを参照する場合にのみ、サーバー側のコントロールを使用します。

サイトノートでは、言及する価値がありますが、ASP.NET LabelWebコントロールは<span>要素としてレンダリングされ、プロパティが使用され<label>ていない限りレンダリングされません。AssociatedControlId

于 2012-08-15T16:38:32.890 に答える
1

サーバーコントロールはaspサーバーによって解析され、htmlが生成されるため、サーバーコントロールではなくクライアントコントロールを使用すると、パフォーマンスが確実に向上します。これはオーバーヘッドです。

パフォーマンスの程度ではありませんが、確かにパフォーマンスの違いがあります。

サーバーコントロールは、サーバー側で変更する必要がある場合にのみ使用する必要があります。

于 2012-08-15T16:40:11.407 に答える
0

サーバーがサーバー側のコントロールをレンダリングする必要があることに加えて、ViewStateクライアントとサーバー間でpingを実行するために、関連付けられたものも必要です。これにより、リクエストが大きくなり、読み込みが重くなり、ページの読み込み時間が長くなります。

于 2012-08-15T16:59:50.773 に答える