Pregunta

he construido un portal de noticias en línea antes de que está trabajando muy bien para mí, pero algunos dicen que la página de inicio es un poco lento. Cuando pienso en él veo una razón por la que es.

La página principal del sitio de pantallas

  1. Titulares
  2. Noticias Spot (sub-títulos
  3. Spots con fotos
  4. Noticias más leídas (como los títulos)
  5. Noticias más comentadas (como los títulos)
  6. 5 títulos de las noticias de cada categoría de noticias (11 en total por ejemplo, deportes, economía, locales de salud     etc ..)

Ahora, cada uno de ellos son separados consultas a la base de datos. Tengo TableAdapters conjuntos de datos y tablas de datos (datos estándar acces escenarios) por lo que para los titulares, que llamo la lógica de negocio en mi clase de noticias que devuelve las tablas de datos por el tableadapter. de allí en adelante, utilizar la tabla de datos con sólo la unión a los controles o (la mayoría del tiempo) el objeto se convierte a una lista (de noticias) por ejemplo y que consumo desde allí.

Hacer esto para cada uno de los anteriores parece funcionar muy bien sin embargo. Al menos no pone una carga enorme. Pero me pregunto si hay una manera mejor.

Por ejemplo, el proyecto que describo más arriba es un sitio web muy dinámica, noticias son insertados a medida que llegan de las agencias de 24 horas sin parar. por lo que el almacenamiento en caché en este caso podría no sonar bien. pero, por otro lado, que conozco tienen otro proyecto similar para un periódico local. El sitio sólo se actualizará una vez al día. En este caso: ¿Sólo puedo ejecutar una consulta, que se obtendrá una tabla de datos que contiene todos los artículos de noticias insertadas por hoy, entonces consulta que DataTable y colocar titulares, manchas y otros artículos a sus respectivos lugares en el sitio? ¿O hay una alternativa mejor en los alrededores? Yo simplemente pasear forma en que otras personas llevan a cabo tareas similares en la forma más eficiente.

¿Fue útil?

Solución

Creo que se debe utilizar Firebug para averiguar qué elementos están tomando tiempo para cargar. A veces, las imágenes grandes pueden arruinar el espectáculo (y el tamaño de la imagen en pantalla no siempre es relativa a su tamaño de descarga).

En segundo lugar se podía descargar el plugin de Firefox Yahoo YSlow e investigar si tiene cualquier script de desaceleración.

Pero Firebug le debe dar la mejor opinión. Después de cargar Firebug haga clic en la pestaña 'neto' para ver el tiempo de carga de cada elemento de la página.

Otros consejos

No

Si usted tiene un rendimiento deficiente, el primer paso es empezar al rededor. perfil de su código. Para saber exactamente por qué es lenta. Es la desaceleración de la transmisión de la página, que lo hacen, o en realidad de forma dinámica generación de la página? Es una sola consulta tomando demasiado tiempo?

Para saber exactamente dónde está el cuello de botella es y atacar el problema en su corazón.

El almacenamiento en caché es también una muy buena idea, incluso en los casos en que el contenido se actualiza con bastante rapidez. Mientras que su mecanismo de almacenamiento en caché es inteligente, usted todavía guarda un montón de tiempo de generación. En el caso de un portal de noticias o un blog en lugar de un foro, su probabilidad de mejorar el rendimiento en gran medida con un sistema de almacenamiento en caché.

Si usted encuentra que sus retrasos provienen de la base de datos, revisar sus tablas, asegurarse de que estén correctamente indexados, agrupado, o cualquier otra cosa que usted necesita en función de la cantidad de datos en la tabla. Además, si usted está utilizando consultas dinámicas, trate de procedimientos almacenados en su lugar.

Si desea obtener varias consultas hechas en una solicitud de base de datos, se puede. Desde un principio que no será mostrando ningún dato hasta que todas las consultas se llevan a cabo de todos modos, y si no hay otros problemas, usted por lo menos ser el ahorro de tiempo en el acceso a la base de datos de nuevo por cada consulta. Conjuntos de datos tienen una colección de tablas, que pueden ser generados por varias consultas en la misma petición.

ASP.NET le proporciona un muy buen mecanismo ya para almacenar en caché (HttpContext.Cache) que se puede envolver alrededor y hacer que sea más fácil para que usted utilice. Ya que se puede establecer un tiempo de vida de los objetos almacenados en caché, que en realidad no tiene que preocuparse de artículos y título no estar al día.

Si está utilizando formularios Web de este sitio web, deshabilitar ViewState para los controles que en realidad no lo necesitan sólo para hacer que la página sea un poco más rápido para cargar. Por no hablar de un montón de otros ajustes y cambios para hacer una carga de página más rápido (gzipping, minimizando los scripts, etc.)

Sin embargo, antes de hacer nada de eso, hacer como Anthony sugirió el perfil de su código. Para saber cuál es el verdadero problema.

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