2011-08-04 8 views
3

私は、サーバーコントロールとHTMLコントロールの速度に差があることを知りたいですか? たとえば、2つのテキストボックスとデータ送信用のボタンを持つログインページを作成するには、サーバーコントロールとHTMLコントロール(client_sideコントロール(入力))の両方でこれを行うことができます。サーバーコントロールまたはHTMLどちらがより効率的か? どちらが高速ですか?サーバーコントロールまたはHTMLコントロール

+1

'runat =" server "'と 'asp:'コントロールのHTMLコントロールを意味しますか? – Oded

答えて

1

サーバーコントロールはサーバー上で実行されなければならない大きな間違いであるとRenderメソッドは、HTMLを生成するために呼び出されます。したがって、サーバー上で少しのパフォーマンスがかかります。コントロールによっては、ViewStateでもデータが放出されますが、帯域幅が少し増えてしまいます(またはコントロールに大きく依存します)。

使用するコントロールのタイプによって異なります。サーバーサイドの処理(テキストボックスの読み込み、ボタンの操作など)が行われるとすぐに、私はasp.netサーバーコントロールを優先します。しかし、コントロールがクライアント(画像、表、divなど)に送信された場合は、HTMLコントロールを使用します。

私は、サーバー側の処理にはあまり時間がかかりませんが、データベースからデータを取得するのに時間がかかります。もちろん、最適化するかどうかは、ユーザー数にも依存します。しかし、私はむしろasp.netサーバーコントロールを使用しないでOutputCacheを使用します。

これが役に立ちます。

0

サーバーコントロールは単純なhtmlまたはhtmlコントロールの組み合わせで、サーバーにデータを投稿することができます。

暫定的なクライアント側の検証で、簡単なログイン画面のためのサーバー側のコントロールが好きです。

コントロールの効率は、サーバーに送信しているラウンドトリップの回数と、実行しているjavascriptロジックの量によって異なります。

3
あなたは常にクライアントから何かを信頼し、サーバー側で検証する

+0

+1合意。クライアント側の検証は、素敵で反応の良いユーザーエクスペリエンスのためのものです。サーバー側の検証は、自分自身(システム)を保護することです。 :) – mikemanne

1

サーバーコントロールの主な利点は、コントロールを.Netオブジェクトとしてラップすることです。それはあなたのコントロールとコードの背後からそのプロパティにアクセスするための媒体を提供します。

HTMLコントロールは通常、クライアント側ではアクセスできません。ただし、runat = "server"属性を追加することで、それらをコードビハインドで使用できるようにすることができます。

コードからコントロールにアクセスすることを前提として、いずれかを選択できます。

あなたが実際にasp.netコントロール(これはあなたがサーバーコントロールと呼んでいるものだと思います)とhtmlコントロールの違いを見たい場合は、WebControlとHTMLControl(ASPの親)の違いです。ネットコントロールとhtmlコントロール)。基本的に2つの異なるラッパーセットを取得します。 ASP.Netコントロールには多くのカスタマイズが付属しており、コントロールセットはHTMLコントロールリストより長いリストです。

基本的なことを行い、コードからコントロールにアクセスする必要がないと仮定した場合、サーバー側からのレンダリング作業が節約されるため、HTMLコントロールが最適です。

もう1つは、サーバー側のリソース(サーバー側に格納されているイメージなど)を利用したい場合は、単純に一貫してアクセスすることができません。ポストバックによってパスが失われる可能性があります。 runat = "server"での制御が期待されます。その再びあなたの選択、htmlまたはasp.netコントロール!

関連する問題