On dl, 2004-11-08 at 13:50, Manuel J.Recena Soto wrote:
> Te lo puedo confirmar. Los archivos CSS, al igual que otros, son cacheados 
> por los navegadores.

Creo que Chema se refiere a las imágenes del CSS y no al CSS en si. 

> > Una duda sobre el menor peso de las páginas html tradicionales y las 
> > que emplean CSS. Según creo, si yo defino una página que presenta varios
> > diseños visuales donde, por ejemplo, tengo tres imágenes distintas 
> > que repito varias veces y por tanto al descargar la página recibo 
> > esas tres imágenes tantas veces como aparece en mi página tradicional.
> > 
> > En cambio, si uso CSS al separar presentación de contenido solo descargo
> > una vez las tres imágenes y el CSS en el navegador del cliente es el
> > encargado de presentarlas repetidas tantas veces como lo haya 
> > definido en el diseño de la hoja de estilo.
> > 
> > Así se obtiene una reducción del tráfico en la red, además del 
> > tamaño de la página.
> > 
> > ¿Me podéis confirmar que esto funciona así?.

No del todo. Como comentas que no usemos términos informáticos intentaré
definir el concepto de cache para explicarte como funciona el asunto. 

Una cache es una memoria temporal dónde se pueden guardar ciertos datos.
La idea es que pese a que estos datos existen en algún otro sitio,
siempre será más rápido acceder a la caché que no al origen real de
dichos datos. A modo de analogía, podríamos decir que la agencia EFE de
noticias es una especie de caché de sucesos; no tiene sentido ir a la
fuente de la noticia una y otra vez si existe alguien que ya la ha
guardado por nosotros.

Una vez se entiende el concepto, la cosa depende enteramente de los
navegadores. En cada navegador, típico, hay dos tipos de caché: una de
memoria y una de disco. La primera se usa mientras estamos en una sesión
del navegador, mientras vamos visitando páginas; mientras que la otra
graba en disco datos para la siguiente sesión.

Mientras un navegador navega por una página, va guardando en su caché de
de memoria las imágenes que va cargando y, si se vuelve a hacer una
petición de esa misma imagen no comprobará, de nuevo, si se ha
modificado. Nótese que esto no tiene nada que ver con la caché de disco.
Si yo entro hoy en un sitio web y mañana vuelvo a entrar, quién decide
si la imagen se carga de nuevo o no es, en última instancia, el usuario,
pues él ha configurado la caducidad de su cache de disco.

Por si te queda alguna duda he hecho una prueba empírica. Esto que hay a
continuación es fácil de entender. Es simplemente un registro
(simplificado) de las peticiones a un servidor web. Primero tienes el
día y hora y a continuación la acción. Todo son "GET algo HTTP/1.1", es
decir: "servidor, envíame tal cosa". Al final está un 200 que significa
que el servidor dice al usuario "ok, ahora te lo envio.

[08/Nov/2004:19:31:21] "GET /~parap/melindro/ HTTP/1.1" 200
[08/Nov/2004:19:31:21] "GET /~parap/melindro/melindro_16x16.png
HTTP/1.1" 200

En este primer registro he usado HTML puro con una imagen
(melindro_16x16.png) repetida cuatro veces. Si te fijas sólo hay una
petición para ella, el navegador sólo le ha pedido una vez al servidor
que se la enviase.

En cambio, el registro siguiente es para una página HTML+CSS dónde cada
elemento 'div' tenía como fondo (especificado con CSS) la imagen
'melindro_16x16.png'. Había, también, cuatro de ellos.

[08/Nov/2004:19:33:52] "GET /~parap/melindro/ HTTP/1.1" 200
[08/Nov/2004:19:33:52] "GET /~parap/melindro/melindro.css HTTP/1.1" 200 
[08/Nov/2004:19:33:52] "GET /~parap/melindro/melindro_16x16.png
HTTP/1.1" 200

Y, como antes, sólo hay una petición de imagen (y una adicional de CSS).

En conclusión, que la respuesta a tu pregunta es que no, no se produce
una reducción de tráfico _de_imágenes_ en la red por usar o no usar CSS.

Sin embargo sí hay un beneficio de tráfico de red global por usar CSS.
Cómo te comentaba Manuel, los CSS se cachean. Esto significa que la
estructura de la presentación de una página web no tienes que ir
descargándola una y otra vez. Aunque parezca una nimiedad, en un HTML
puro hay una serie de datos que explican como mostrar la web y, estos
datos, deben descargarse cada vez junto con el contenido. Usar CSS hace
que el navegador sólo se descargue una sola vez la presentación y, con
ello, se ahorra ancho de banda.

La idea no es que "la imagen que va aquí" se descargue más o menos
veces. Sino que usando HTML cada vez el navegador debe descargar el
concepto "esta imagen va aquí" y con CSS ya lo sabe.

Espero haberte sido de ayuda :)

saludos,

-- 
Dani Armengol Garreta
JID: [EMAIL PROTECTED]
WWW: http://parap.melindro.com


_______________________________________________
Lista de distribución Ovillo
Para escribir a la lista, envia un correo a [EMAIL PROTECTED]
Puedes modificar tus datos o desuscribirte en la siguiente dirección: 
http://ovillo.org/mailman/listinfo/ovillo_ovillo.org

Responder a