2008-08-14 10 views
24

Tengo un sitio web ASP.Net 2.0 habilitado para Ajax.Net. El alojamiento tanto para el sitio como para la base de datos está fuera de mi control, al igual que el esquema de la base de datos. En las pruebas de hardware que sí controlo, el sitio funciona bien, sin embargo, en el hardware del cliente, hay retrasos notables al volver a cargar o cambiar páginas.Aceleración de un sitio web o aplicación de ASP.Net

Lo que me gustaría hacer es hacer que mi aplicación sea lo más compacta y rápida posible cuando la entrego. Una idea es establecer fechas de vencimiento para todos los recursos estáticos del sitio para que no se vuelvan a llamar en las cargas de página. Por recursos me refiero a imágenes, hojas de estilo vinculadas y archivos fuente de JavaScript. ¿Hay una forma fácil de hacer esto?

¿Qué otras formas existen para optimizar un sitio web de .Net?

ACTUALIZACIÓN: He ejecutado YSlow en el sitio y las áreas en las que me tocó más se encuentran el número de JavaScript y las Hojas de estilo que se están cargando (23 archivos JS y 5 hojas de estilo). Todos menos uno (la hoja de estilo principal) han sido insertados por Ajax.net y Asp. ¿Porqué tantos?

Respuesta

0

Puede activar la compresión según el cliente que la admite. Ver este artículo: link text

0

Los recursos estáticos no deben reenviarse a menos que se modifique. IIS enviará un código de respuesta que le indica al navegador que use la versión en caché.

3

Desactive viewstate de forma predeterminada, será una diferencia de día y de noche incluso en las páginas más simples.

1

Creo que realmente necesita obtener algunos datos reales de PerfMon/telemetría de la aplicación mientras se ejecuta en producción para poder tomar una decisión informada sobre qué optimizar.

Como tiro de la punta me aseguraría de que su aplicación se implementa como un lanzamiento acumulación y establecer debug = "false" en la sección ' compilación' de su web.config.

5

Si está utilizando Firefox para probar su sitio web, es posible que desee probar una hábil extensión de Firefox desde Yahoo! llamado YSlow.

Analiza sus páginas web y proporciona calificaciones de A a F (A es lo mejor y F es lo peor) para cada una de las mejores prácticas, para sitios web de alto rendimiento. Le ayudará a rastrear los elementos de su sitio web que podría optimizar para obtener aceleraciones.

1

Parece que está empezando por asumir que su problema es el tamaño de descarga, que puede no ser necesariamente el caso. Debe hacer algunos experimentos con su sitio ASP.NET para determinar si hay áreas en su código que están causando retrasos indebidos. Si resulta que el tamaño de la descarga no es su problema, necesitará encontrar formas de almacenar sus resultados en caché (busque en el almacenamiento en caché de resultados, que es una función de ASP.NET) u optimice su código.

En cualquier caso, el primer paso cuando se trata de un problema de rendimiento es siempre para verificar primero sus suposiciones, luego decida un curso de acción.

2

me escribió una blog post sobre cómo mejorar el rendimiento de páginas ASP.NET esto un par de meses. Aquí están algunos rápidos & formas sencillas -

  • Desactivar el estado de vista
  • Desactivar la validación de eventos
  • Implementar HTTP gzip/desinflado de compresión para reducir el tamaño de respuesta (número de bytes que el servidor tiene que enviar de vuelta a el cliente)
  • tratar de optimizar/minimizar sus llamadas de base de datos para cada solicitud
1

Se podría empezar a buscar en las estrategias de caché. Los archivos estáticos como CSS (incluso los comprimidos) e imágenes (incluso los optimizados) solo deberían ser descargados una vez por el navegador durante un período de tiempo.

La combinación Scirpt para AJAX ya se ha mencionado, pero no noté ninguna referencia a ScriptReferenceProfiler MS que se publicó en codeplex para ayudar a descubrir qué combinar. Mike Ormond has a good start point on this.

Otro consejo si está haciendo una gran cantidad de INSERT a su base de datos es verificar que el caché de disco de su servidor esté encendido. Por ejemplo, tuve un importador de datos haciendo 1,2 millones de insertos durante una carrera. Tomó 4 horas y cambió sin almacenar en caché. Tomó 16 minutos con él encendido.

1

Una cosa general, al utilizar ASP.NET y Ajax (Ajax cualquier library) juntos es para evitar que los elementos de Page_Load y Page_Init (y sus equivalentes de método) se lleven a cabo ya que se ejecutarán en cada solicitud de Ajax.

Cuando se dice que yo zanja serio ASP.NET AJAX y utilizar nada mas ...

Anthem.NET, AjaxPRO.NET, jQuery o cualquier otra cosa que ASP.NET AJAX ...

Por supuesto que usaría Ra-Ajax ya que ese es mi proyecto. Pero, de nuevo, estoy predispuesto ...

+0

plug plug plug .... Zzzzzz – redsquare

Cuestiones relacionadas