Denise Home Page
Miscellaneous per tutto quello che riguarda la creazione e la programmazione di pagine web
Il metodo POST e GET e la cache di IE
Inserito il 29/01/2009 Ore:14:59:37 Visite: 194 Commenti: 0
Ecco un'altro simpatico problema che ho incontrato in questi ultimi 2 giorni e che voglio condividere con voi.
Ho programmato in php+ jqueryun'applicazione web che memorizza dati su un database ogni volta che si clicca su un bottone o si passa da un campo di testo ad un altro, con l'intento di rendere molto veloce la memorizzazione dei dati senza richiedere il refresh della pagina.

Non potete immaginare la frustrazione nel vedere che, mentre con Firefox andava come una scheggia, con Internet Explorer non funzionava nulla! Tra l'altro è proprio il browser che non ha un briciolo di estensioni per il debug... (a proposito, grazie all'inventore di firebug!!

Il problema stava nel fatto che IE memorizza in cache i risultati delle pagine php che si richiamano con le istruzioni in ajax.
Anche se i dati in database venivano modificati, la pagina non li visualizzava aggiornati.

La soluzione: utilizzare la funzione $.ajax() piuttosto che $.get o $.post

E quindi ho sostituito il codice:

$.get('functions.php',{
target:"prova
},function(data){
alert('ok');
},'text');


con


$.ajax({
url:'functions.php',
type:"GET",
cache:false,
async:false,
data:"target=prova"
success:function(data){
alert('ok');
}
})


e ho aggiunto per sicurezza il metatag nella pagina principale per il cache-control:
<meta http-equiv="cache-control" content="no-cache">


E adesso anche IE si comporta bene! :)



Autore:

Commento: