Caché
¿Qué es la Caché?
La caché es un almacenamiento temporal de datos o recursos ya procesados, con el objetivo de acelerar el acceso futuro a esa misma información. En lugar de volver a calcular, descargar o consultar algo desde cero, el sistema devuelve directamente la copia guardada.
¿Para qué se utiliza?
La caché se usa para:
- Reducir el tiempo de carga de páginas web almacenando archivos estáticos (CSS, JS, imágenes).
- Evitar consultas repetidas a bases de datos devolviendo resultados ya calculados.
- Ahorrar ancho de banda en redes y reducir la carga del servidor.
- Mejorar la experiencia de usuario con tiempos de respuesta más rápidos.
- Permitir acceso a contenido sin conexión en aplicaciones PWA.
¿Cómo funciona?
Imagina la caché como la memoria a corto plazo de una persona. Si alguien te pregunta “¿cuánto es 347 × 12?” y lo calculas, la segunda vez que te lo pregunte lo tienes en mente al instante — no necesitas calcularlo de nuevo. El sistema hace lo mismo: guarda el resultado la primera vez y lo entrega directamente las siguientes.
Ejemplo: Cache HTTP con cabeceras
# El servidor responde indicando cuánto tiempo cachear el recurso
HTTP/1.1 200 OK
Cache-Control: max-age=86400
ETag: "abc123"
Content-Type: application/javascript
# El cliente guarda el archivo durante 86400 segundos (1 día)
# En la siguiente petición, solo pregunta si cambió:
GET /app.js HTTP/1.1
If-None-Match: "abc123"
# Si no cambió, el servidor responde:
HTTP/1.1 304 Not Modified
# El cliente usa la copia local — sin volver a descargar nada
Ejemplo: Caché en JavaScript con Map
// Sin caché: recalcula cada vez (lento para inputs repetidos)
function fibonacci(n) {
if (n <= 1) return n;
return fibonacci(n - 1) + fibonacci(n - 2);
}
// Con caché (memoización): guarda resultados ya calculados
const cache = new Map();
function fibonacciConCache(n) {
if (cache.has(n)) return cache.get(n); // ← devuelve resultado guardado
const resultado = n <= 1 ? n : fibonacciConCache(n - 1) + fibonacciConCache(n - 2);
cache.set(n, resultado); // ← guarda para la próxima vez
return resultado;
}
console.log(fibonacciConCache(40)); // Instantáneo vs. varios segundos sin caché
La caché es una de las herramientas de rendimiento más efectivas, pero requiere gestionar la invalidación: saber cuándo la copia guardada ha quedado obsoleta y debe actualizarse.