Evita la cache en páginas html estáticas y dinámicas

Quizá una de las cosas más engorrosas cuando programamos páginas webs sea la cache, en algunos casos es tan incómoda que ni siquiera pulsando ctrl + F5 (recarga de la página en el servidor) funciona.

Pero antes de seguir explicando la forma de burlar este sistema, expliquemos de qué se trata una cache:

En informática, una caché es un conjunto de datos duplicados de otros originales, con la propiedad de que los datos originales son costosos de acceder, normalmente en tiempo, respecto a la copia en el caché. Cuando se accede por primera vez a un dato, se hace una copia en el caché; los accesos siguientes se realizan a dicha copia, haciendo que el tiempo de acceso medio al dato sea menor.

Los casos más raros que he podido comprobar son la cache de archivos .js (que incluyen funciones javascript) en algunos casos la única manera de refrescar los cambios es accediendo por separado al archivo .js para que el navegador recoja los nuevos cambios.

Para evitar esto, supuestamente existen unas cabeceras que podemos incluir en nuestras páginas entre las etiquetas <head></head>

<meta HTTP-EQUIV=”Pragma” CONTENT=”no-cache”>
<meta HTTP-EQUIV=”Expires” CONTENT=”-1″>

Pero me aventuraría a decir (por experiencia propia) que algunos navegadores, simplemente las ignoran, si las cabeceras son las misma se limitan a sacar de la cache.

En estos casos, para páginas estáticas, si habiendo hecho esto sigue sin funcionar estamos un poco fastidiados sigue leyendo más abajo, pero si por el contrario disponemos de una página dinámica la solución es tan sencilla como funcional.

Evitar la caché en páginas dinámicas

Bastará con cambiar dinámicamente las cabeceras para que a efectos del navegador parezca una nueva y así obligarle a cargar todos los ficheros.

Por ejemplo, lo que suelo hacer es añadir un parámetro aleatorio a los ficheros que no quiero que se almacenen en cache, así obligo siempre al navegador a descargarlo.

Esta solución hay que tenerla en cuenta sólo para algunos casos, ya que estar cargando continuamente un fichero repercute en la transferencia del servidor que la aloja así como en la velocidad de navegación de nuestra página.

Evita la caché en páginas estáticas

Fallo mio al no haberme documentado bien, ya que javascript también tiene una función de la clase Math que devuelve un parámetro aleatorio, por lo que también podremos evitar la cache en nuestras páginas estáticas.

src='http://direccion/fichero.js?rand='+Math.random();


Comparte este artículo

rss delicious meneame technorati webeame bitacoras enchilame fresqui google reddit

Temas relacionados


 

Trackbacks / Pingbacks


1 Comentario (1 externos)

Deja un comentario


Deja un comentario

Normas de uso
  • No insultes
  • Escribe sin faltas de ortografía
  • Si vas a contestar a alquien, utiliza el botón responder, se le avisará