2010-11-09 26 views
5

¿Hay alguna razón para utilizar controles HTML estándar (tipo de entrada = texto, tipo de entrada = casilla de verificación) en lugar de controles asp.net (asp: TextBox, asp: CheckBox) para mejorar el rendimiento?ASP.NET - mejorar el rendimiento

Respuesta

1

Como siempre con optimizaciones de rendimiento: depende de la situación. Pruébelo en su proyecto y vea si hace alguna diferencia.

5

En mi humilde opinión esto sería una optimización de micro. Obtendrás rendimiento, pero no será notable. Por otro lado, perderá gran parte de la flexibilidad que ofrecen los controles del servidor.

Puede intentar reducir el tamaño del ViewState deshabilitándolo para los controles que no lo necesitan. Esto reducirá el tamaño de las páginas generadas y mejorará el rendimiento.

4

Los controles de usuario ASP.NET todos tendrán ViewState asociado con ellos a menos que se establezca explícitamente

EnableViewState="False" 

Como tal, se le hinchan el tamaño de la página subyacente si tiene un gran número de controles. Como regla general, use lo que satisfaga sus necesidades y nada más.

  • ¿Necesita acceder al control de usuario en el código subyacente?
  • ¿Necesita el control para mantener el valor en todos los respaldos posteriores, etc.?

En la mayoría de los casos, no hará la diferencia, pero es bueno mantener su página limpia si no necesita estas características.

1

También con .net 4.0 se ha perdido otra forma de utilizar los controles del servidor, ya que puede establecer ClientIDMode en Static, lo que le dará control total sobre las identificaciones en sus controles. Anteriormente, el uso de solo un estándar textbox o button (sin viewstate) seguiría representando ID locas no legibles debido a la forma en que funcionan los contenedores de nombres. Esos días han terminado ahora, sin embargo :)

Recuerde que sus tres opciones son:

  1. uso HTML normal que no se puede hacer referencia en el servidor.
  2. agregue runat="server" a sus etiquetas html existentes (es decir) y podrá acceder a ella como HtmlControl.
  3. utilizar las etiquetas ASP.NET (<asp:* runat="server" />)

La desventaja de la opción 3 es que no siempre se sabe lo que el html-markup prestado será y que tienen menos control sobre él. Personalmente solo uso la opción 3 para controles más avanzados como, el botón() y controles de terceros. Para el marcado html normal que necesito referenciar en el servidor, prefiero la opción 2.

En cuanto al rendimiento, vería principalmente la salida renderizada, la cantidad de hinchamiento adicional que se representa para el cliente y tal. El tiempo de CPU en el servidor que utiliza uno u otro enfoque diría secundario en comparación con las diferentes técnicas de almacenamiento en caché que ASP.Net ya tiene.

Cuestiones relacionadas