Pregunta

Con los controles de usuario en una página, entiendo que cada control tiene un impacto en el uso de la memoria al almacenar su propio estado en ViewState. Mi pregunta es, ¿cuánto?

Por ejemplo, tengo un formulario de comentarios como control en mi página maestra. Se establece en Visible = " false " por defecto. Un usuario hace clic en un botón de comentarios y el control se vuelve visible mientras se necesita.

¿Cuál sería el impacto relativo en el rendimiento al tener el control sentado allí en cada página (como se encuentra en la página principal), pero no visible? El sitio que estoy desarrollando potencialmente tendrá una gran cantidad de tráfico y me pregunto si más adelante me pondré a cargo de un dolor de cabeza si las cosas se vuelven lentas.

Gracias

¿Fue útil?

Solución

El rendimiento podría verse afectado en el servidor y el cliente. Principalmente desea reducir la cantidad de HTML, incluido el estado de visualización que se envía al cliente. Si se encuentra en todas las páginas, enviará esta información del estado de visualización más a menudo de lo que realmente necesita.

Creo que debería tener alguna lógica que garantice que el control del formulario de comentarios solo se agregue a la página de comentarios. En lugar de usar visible = " false " ;, ponerlo en su propia página y vincularlo, o agregar dinámicamente el control a la página.

Los beneficios principales se reducirán en el uso del ancho de banda y en la representación más rápida de la página en el cliente. Los beneficios secundarios incluyen una depuración más sencilla y una representación de código más limpia para el cliente.

Con todos los problemas de rendimiento, debería probar el rendimiento y hacer juicios basados ??en datos concretos. En este caso, calcule el tamaño del estado de vista en el cliente, luego multiplique por el número de solicitudes para ver el tamaño del uso del ancho de banda en el servidor. En el cliente, utilice una herramienta como FireBug para comprender el tamaño de página general recibido por el cliente.

Otros consejos

Depende del control. La cuadrícula de datos con cientos de filas puede generar 100k de viewstate. Por otro lado, la casilla de verificación no generará demasiado.

Usted puede simplemente dejar caer el control de su formulario de comentarios en una página aspx vacía, visitarlo en el navegador y verificar el campo oculto __viewstate. Esto es lo que se agregará a cada página en términos de estado de visualización. Entonces tendrá que decidir si es aceptable.

No pensaría en tales optimizaciones desde el principio. Si se volverá lento más adelante, siempre puede cambiar el formulario para que sea HTML puro y usar ajax o algo para enviar datos al servidor. Siempre y cuando sea control del usuario y no se copie el contenido pegado, será fácil de optimizar

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top