Saltar al contenido

Usando JavaScript Axios/Fetch. ¿Se puede deshabilitar la memoria caché del navegador?

Nuestros mejores investigadores agotaron sus provisiones de café, buscando noche y día por la respuesta, hasta que Abel encontró el resultado en Gogs así que ahora la comparte aquí.

Solución:

Bien, entonces encontré una solución. Tuve que establecer una marca de tiempo en la URL de la API para que hiciera una nueva llamada. No parece haber una manera de forzar axios o fetch para deshabilitar el caché.

Así es como se ve mi código ahora

axios.get(`https://quotesondesign.com/wp-json/posts?filter[orderby]=rand&filter[posts_per_page]=1×tamp=$new Date().getTime()`)
  .then(response => 
    const  title, content, link  = response.data[0];
    console.log(title, content, link)
    this.setState(() => ( title, content, link ));
  )
  .catch(err => 
    console.log(`$err whilst contacting the quote API.`)
  )

Agregué estos encabezados a todas las solicitudes de axios y funciona bien.

axiosInstance.defaults.headers = 
  'Cache-Control': 'no-cache',
  'Pragma': 'no-cache',
  'Expires': '0',
;

Creo que solo necesita hacer que la URL sea diferente cada vez que realiza la llamada axios. La marca de tiempo es solo una forma de hacerlo. También considere deshabilitar o filtrar el método de almacenamiento en caché de los trabajadores del servicio si está desarrollando un PWA.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *