Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

133
Vistas
Forzar el uso de HTTP Cache con fetch

Estoy tratando de usar HTTP Cache para algo simple, pero no puedo hacer que funcione.

Estoy usando las siguientes opciones para fetch() .

 fetch('test', { cache: 'force-cache', headers: { 'Cache-Control': 'max-age=3600', 'Pragma': 'max-age=3600', // added for redundancy } }) .then( response => response.json() ) .then( data => console.log(data) ) .catch( error => console.error(error) ) .finally( () => console.log('Done') );

El punto final test simplemente devuelve un json con el siguiente formato

 { "date": "...", /* date in 'Ymd H:i:s' format */ }

Me aseguré de que la respuesta también tenga el encabezado Cache-Control. Puedo verlo cuando inspecciono los encabezados de respuesta.

HTTP/1.1 200 Aceptar
Servidor: Apache
Control de caché: público, edad máxima = 3600
Longitud del contenido: 30
Keep-Alive: tiempo de espera = 5, máximo = 94
Conexión: Keep-Alive
Tipo de contenido: aplicación/json; conjunto de caracteres = UTF-8

Los encabezados de solicitud también parecen ser correctos.

Conexión: mantener vivo
Pragma: edad máxima = 3600
Control de caché: edad máxima = 3600
Aceptar: */*
Sec-Fetch-Site: mismo origen
Sec-Fetch-Mode: cors
Sec-Fetch-Dest: vacío

Traté de ejecutar la misma búsqueda una y otra vez en el lapso de un minuto, esperando obtener la misma fecha, sin cambios, pero los resultados siempre fueron "nuevos", por así decirlo.

¿Tengo un malentendido fundamental de cómo funciona HTTP Cache o es mejor simplemente almacenar en caché el valor en el back-end?


Actualmente estoy probando ejecutando el siguiente código dentro de una etiqueta <script> .

 let x = 0; const interval_id = setInterval(() => { fetch('test', { ... }); if (++x === 20) { window.clearInterval(interval_id); } }, 1500);

Espero que me devuelvan la misma fecha y hora 20 veces (almacene en caché la primera respuesta)

about 4 years ago · Juan Pablo Isaza
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda