2010-02-19 6 views
6

Mi sitio web a veces se carga un poco lento, debido a la cantidad de carga de imágenes. De hecho, tengo 61 imágenes en mi página de inicio debido a todas las superposiciones e íconos png. He considerado usar sprites o un mapa de imagen, pero realmente no tengo ganas de hacer esto. Sé que solo puede haber 2 solicitudes en mi servidor, así que si alojo las imágenes en otro lugar, aceleraría el tiempo, pero, ¿es eso confiable? Las herramientas de Pingdom dicen que mi sitio tiene un 'tiempo de espera excedido'. Busco a una solución que, o bien:cantidad de imágenes en el sitio está causando un largo tiempo de carga

A) Extender mis imágenes en diferentes servidores (pero el inconveniente es que lo quiero en un servidor fiable (la mía!)

B) El uso de sólo unos pocos sprites de imagen u otra técnica CSS

C) ??? ¿Algunas ideas?

Gracias de antemano.

Actualización 1: Creé 6 subdominios y dividí todas mis imágenes entre esos subdominios. Puede ver el sitio normal con todas las imágenes alojadas en una carpeta here y puede ver el mismo sitio con las imágenes en 6 subdominios here. ** Como puede ver, el sitio con imágenes en subdominios carga MUCHO MÁS lento. ¿Porqué es eso? ¡No entiendo!

Actualización 2: Llamé a mi compañía de alojamiento, y parecen pensar que la solución de subdominio no resolverá el problema y solo lo ralentizará porque cada subdominio no tiene direcciones IP únicas. Mi servidor estaba experimentando una carga alta, por lo que explica un poco el retraso, pero todavía hay este problema de imagen. Dijo que lo mejor que puedo hacer es usar el Servicio de Amazon, así que eso es lo que voy a investigar ahora.

Lo que todavía tengo problemas para entender es el retraso en ciertos archivos de imagen. Si observa los resultados de carga de página en Firebug (consulte la respuesta de BalusC a continuación), hay un tiempo de espera significativo para cargar ciertas imágenes. Me pregunto porque.

+1

¿Quiere decir que su plan de hosting solo permite 2 solicitudes http concurrentes? –

+0

Probablemente significa que el navegador permite 2, pero creo que el valor predeterminado es 4 u 8. – dusoft

+0

Sí, pensé que era un límite de solicitud del navegador – JCHASE11

Respuesta

3

Uno de los mejores artículos que he leído sobre este tema es:

Optimizing Page Load Time

Es posible que no se siente como la fabricación de sprites (que puede relacionarse), pero en última instancia, que podría ser la mejor cosa que puede hacer . La distribución de solicitudes en (sub) dominios es buena, pero cada solicitud es costosa (la velocidad de carga suele ser el factor limitante en las conexiones de cablemódem) y dado que la mayoría de los usuarios de los sitios tienen una experiencia de memoria caché vacía, lo que realmente desea es minimizar la cantidad de solicitudes que se realizan.

No he visto su sitio, pero si pudiera reducir el número de solicitudes a la mitad mediante el uso de sprites, supongo que le dará un aumento de rendimiento más grande en más plataformas que cualquier truco de CDN o subdominio. (Vea el artículo para algunos números y gráficos.)

+0

gran comentario. gracias – JCHASE11

2

debe usar múltiples subdominios ya que cada subdominio se trata como un dominio separado, por lo tanto, es posible realizar más solicitudes al mismo tiempo.

subdominios pueden tener (físicas) enlaces simbólicos a las mismas imágenes del directorio/

+0

wow. De Verdad. entonces si configuro, digamos, 10 subdominios en mi servidor, y divido las imágenes entre esos subdominios, cargaría mucho más rápido, ¿correcto? – JCHASE11

+0

Sí, pero tenga en cuenta que el navegador también tiene un límite total superior para todas las solicitudes. por lo tanto, probablemente tenga sentido solo para hasta 6 subdominios (o google el límite superior predeterminado de solicitudes paralelas). – dusoft

+0

aunque creo que lo "correcto" es usar sprites de imagen, esta es la mejor solución para mí.Voy a darle una oportunidad – JCHASE11

2

Amazon ofrece servicios CDN: http://aws.amazon.com/cloudfront/ Se podría alojar imágenes allí y sólo pagar por el ancho de banda utilizado. Amazon AWS es tradicionalmente bastante confiable. Podría cname subdominios adicionales para evitar el límite de conexión HTTP 1.1 2 ya que @dusoft menciona también.

+0

sí, las nubes (no solo Amazon AWS, sino también otras) también son buenas maneras de hacerlo. pero probablemente no quiera pagar ... – dusoft

+0

si es por ancho de banda, ¿no sería muy barato para aproximadamente 3 MB de imágenes? – JCHASE11

+0

no importa, depende totalmente del tráfico. Curioso porque el interés de querer más tráfico no está alineado con este plan. En un sitio web que no genera ingresos publicitarios, mientras más tráfico reciba, más tendrá que pagar por el ancho de banda de Amazon. Perdón por decirlo, pero no es una opción. – JCHASE11

2

Según su actualización

creé 6 subdominios y se separaron todos mis imágenes entre los subdominios. Puede ver el sitio normal con todas las imágenes alojadas en una carpeta aquí y puede ver el mismo sitio con las imágenes en 6 subdominios aquí.

Como puede ver, el sitio con imágenes en subdominios carga MUCHO MÁS lento. ¿Porqué es eso? ¡No entiendo!

he comprobado el network panel de Firebug:

Este era el sitio "normal":

alt text
(full image here)

Este fue el sitio "mejorado":

alt text
(full image here)

Es notablemente mejor (solicitudes mucho más simultáneas), pero había muchas barras verdes grandes para "Conectar" (que oscilan alrededor de 9 segundos), el navegador está esperando para conectarse con el servidor. Por lo tanto, el problema está más en el servidor. Parece que hay algo mal con Keep-Alive y que el servidor Apache HTTPD está configurado con KeepAliveTimeout 10 o menos. Pruebe para deshabilitar Keep-Alive para esos hosts virtuales por KeepAlive off y vea qué sucede.

+0

No tengo mucha experiencia con esto. Cuando lo pruebo, experimento un tiempo de espera, aunque finalmente todas las imágenes se cargan. Parece ser mi servidor, que es host gator. Creo que los llamaré. Es extraño que los mismos archivos estén causando el atraco cada vez. ¿Algunas ideas? Gracias a la sobrecarga del protocolo Balus – JCHASE11

+0

puede causar eso. pero según su pregunta actualizada, estoy seguro de que hay algún otro problema con el servidor (por ejemplo, el número de solicitudes paralelas que permite, etc.) – dusoft

+0

consulte la actualización anterior. La empresa de alojamiento parece pensar que el servidor está bien. Firebug me está diciendo que el "sitio mejorado" es mejor, pero mi compañía de alojamiento y mi reloj dicen que el "sitio normal" se carga más rápido. No sé qué está causando este retraso, y la empresa de alojamiento no ayudó mucho. Estoy pensando que Amazon S3 resolverá todos mis problemas. – JCHASE11

0

Google tiene una herramienta llamada Page Speed. Desde su descripción:

velocidad Página lleva a cabo varias pruebas en la configuración del servidor web de un sitio y código de front-end. Estas pruebas se basan en en un conjunto de mejores prácticas conocido por para mejorar el rendimiento de la página web.

Página Velocidad puntúa cada página y brinda sugerencias sobre cómo mejorar su rendimiento. No estoy seguro si esta herramienta lo ayudará con su problema específico con respecto a los largos tiempos de espera, pero puede valer la pena intentarlo.

También tienen algunos docs sobre las mejores prácticas de rendimiento, como la minimización de los tiempos de ida y vuelta.

Cuestiones relacionadas