Evitando problemas con la caché

Iniciado por Xt3mP, Julio 16, 2012, 12:05:38 AM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

¿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
<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
<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
<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é.
Cada vez que me das Karma me motivas

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

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.
Cada vez que me das Karma me motivas

Ojo muchachos que ese truco incrementa bastante el trafico sobre el sitio.
Pancutan
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Totalmente de acuerdo, pero al menos para mí, es una solución fíable.
Cada vez que me das Karma me motivas