Underc0de - Hacking y seguridad informática

Programación Web => Zona Webmaster => Mensaje iniciado por: Xt3mP en Julio 16, 2012, 12:05:38 am

Título: Evitando problemas con la caché
Publicado por: Xt3mP en Julio 16, 2012, 12:05:38 am
¿A quién no le ha pasado que al modificar algún archivo (por ejemplo, algún archivo css) y subirlo al sitio web nuevamente, éste sigue teniendo el contenido del fichero antiguo? ¡A la mayoría!, y éste gravísimo problema ‘jode-cerebros’ se debe a la bendita -para algunos- caché.

Esto se debe a que, para que la carga del sitio web sea mucho más rápida, el navegador revisa si ya ha descargado el archivo en cuestión para sólo mostrarlo en vez de descargarlo nuevamente, mostrando así (válgame la redundancia) el contenido anterior en vez del actualizado con las correcciones correspondientes.

Existen varios métodos para forzar la descarga del archivo nuevamente y de ésta manera, ganarle a la caché:

1.- Manejando versiones:

Generalmente nosotros llamamos a un archivo CSS de la siguiente manera:

Código: CSS
  1. <link rel="stylesheet" type="text/css" href="http://xt3mp.mx/css/plugin/style.css" />

Haciendo así, que a la primer visita del navegador, éste descarge el archivo “style.css” y en su segunda carga, al no notar cambios, en vez de descargarlo nuevamente, sólo lo cargue el contenido.

Es aquí cuando entra el primero método para evitar que la caché nos cause dolor de cabeza; manejando versiones, es decir, hará que la llamada al archivo, o bien, la url sea distinta para que el navegador lo interprete como que si se trátase de otro archivo forzando así la descarga del mismo. Esto lo haremos añadiendo un parámetro en el archivo que no sea interpretado de la siguiente forma (en éste caso la versión del script sería 2.0):

Código: CSS
  1. <link rel="stylesheet" type="text/css" href="http://xt3mp.mx/css/plugin/style.css?_=2.0" />

2.- Manejando hora actual:

Es practicamente el método 1, sólo que agregando la función time() de PHP al final como parámetro en vez de la versión:

Código: CSS
  1. <link rel="stylesheet" type="text/css" href="http://xt3mp.mx/css/plugin/style.css?_=<?php echo time(); ?>" />

De ésta manera, cada vez que entremos a la página cargará un archivo diferente ya que al tener otro nombre lo tomará como otro archivo, asegurandonos así que siempre se mostrará el contenido actualizado, por lo que nos quitaríamos un gran dolor de cabeza: la caché.
Título: Re:Evitando problemas con la caché
Publicado por: Stiuvert en Julio 16, 2012, 03:42:53 am
Gracias Xt3mP, lo tendré en cuenta por si me pasa aunque yo siempre he borrado la cache del navegador y me ha ido bien ya que nunca me ha pasado lo comentado en el tutorial.



Saludos
Título: Re:Evitando problemas con la caché
Publicado por: Xt3mP en Julio 16, 2012, 05:10:09 am
Generalmente los que nos dedicamos a hacer sitios webs en cantidad nos hemos visto en presencia de éste error, ojala nunca sea tu caso porque da dolores de cabeza.
Título: Re:Evitando problemas con la caché
Publicado por: karancho en Julio 16, 2012, 10:47:26 am
Ojo muchachos que ese truco incrementa bastante el trafico sobre el sitio.
Título: Re:Evitando problemas con la caché
Publicado por: Xt3mP en Julio 16, 2012, 11:12:35 am
Totalmente de acuerdo, pero al menos para mí, es una solución fíable.