jQuery ajax: eliminare i problemi di caching

Vediamo come agire sulla cache di jQuery ajax in modo tale da prevenire il caching della richiesta asincrona.

Di recente in un grosso progetto facente uso di Varnish Cache sul server mi è capitato che con alcuni browser come Firefox o Safari la richiesta asincrona fatta con jQuery ajax di fatto non funzionasse (anche se il pattern dell’url fosse filtrato lato server da varnish). Su Chrome e Opera nessun problema. Pertanto ho iniziato ad approfondire la funzionalità “cache” di jQuery Ajax. 

Questo parametro, da passare nel codice della chiamata, disabilita il caching di ajax. Ecco come implementarlo:

$.ajax({
type: "GET",
cache: false, // disabilita caching ajax
url: "url-to-ajax-call",
data: "ajax=" + ajax + "&timestamp=" + new Date().getTime(), // il timestamp dinamico a ogni call assicura la disabilitazione della cache
dataType: "html",
success: function(msg)
{
//successo
},
error: function()
{
//errori
}
});//ajax

Per essere sicuro che la  chiamata sia sempre “fresca” ho aggiunto anche un parametro timestamp alla richiesta che ovviamente cambia ad ogni call e rende il tutto dinamico assicurando che la richiesta sia sempre senza cache.

Spero che questa soluzione possa aiutarvi e risolvervi qualche problema 😉 A me avrebbe risolto almeno 2 ore di lavoro 😀

Photo credits “cache” disponibile su Shutterstock

0 0 voti
Valutazione dell'articolo
Iscriviti
Notificami
guest

Questo sito utilizza Akismet per ridurre lo spam. Scopri come vengono elaborati i dati derivati dai commenti.

1 Commento
Vecchi
Più recenti Le più votate
Feedback in linea
Visualizza tutti i commenti
Giovanni
Giovanni
7 anni fa

Bella idea.
Grazie

Rimani Aggiornato
Nuove idee, zero Spam
Ti invieremo solo le ultime novità di articoli o nostri progetti.
Iscrivendoti accetti la nostra privacy poliicy. Una volta iscritto, ricordati di attivare l'iscrizione cliccando sul link ricevuto via mail.
1
0
Esprimete la vostra opinione commentando.x