Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

xmlhttprequest et le cache

4 réponses
Avatar
BertrandB
Bonjour,

Je rencontre une petite difficult=E9 qui d=E9passe mes comp=E9tences ... =

(c'est pas difficile ;) )

J'aurais besoin dans une requ=EAte XmHTPRequest de demander au serveur de=
s=20
pages persos de bien vouloir me transmettre la derni=E8re version du=20
fichier et pas celui qu'il a gard=E9 en cache et au cache du navigateur d=
e=20
ne pas me retransmettre ce qu'il a gard=E9.

4 réponses

Avatar
O.L.
BertrandB avait écrit le 03/09/2006 :
Bonjour,

Je rencontre une petite difficulté qui dépasse mes compétences ... (c'est pas
difficile ;) )

J'aurais besoin dans une requête XmHTPRequest de demander au serveur des
pages persos de bien vouloir me transmettre la dernière version du fichier et
pas celui qu'il a gardé en cache et au cache du navigateur de ne pas me
retransmettre ce qu'il a gardé.


Soit la page d'arrivée est une page PHP, auquel cas tu peux rajouter un
code pour empêcher la mise en cache au début :

header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT");
header("Cache-Control: no-cache, must-revalidate");
header("Pragma: no-cache");

Soit tu rajoutes un paramètre aléatoire dans l'URL que tu appelles,
pour que l'adresse change à chaque requête, donc sans appel au cache :

tonObjectAjax.get("http://tonsite/tapage.ext?param«c&rnd="+Math.random(),
"GET");

--
Olivier Ligny
Créateur web free-lance / www.cyber-tamtam.net

Avatar
BertrandB


Soit la page d'arrivée est une page PHP, auquel cas tu peux rajouter un
code pour empêcher la mise en cache au début :
Et non dans le cas présent c'est Orange-Wanadoo donc sans PHP



tonObjectAjax.get("http://tonsite/tapage.ext?param«c&rnd="+Math.r andom(),
"GET");

J'avais vu cette solution mais hélas elle nécessitera plus de

modification dans mes js, mais s'il faut ....

Ne peut on pas mettre un header dans la requête qui demanderait à apa che
de recharger ? .... mais là je ne suis plus sur d'être sur le bon gro upe

Avatar
O.L.
BertrandB avait soumis l'idée :


Soit la page d'arrivée est une page PHP, auquel cas tu peux rajouter un
code pour empêcher la mise en cache au début :
Et non dans le cas présent c'est Orange-Wanadoo donc sans PHP



tonObjectAjax.get("http://tonsite/tapage.ext?param«c&rnd="+Math.random(),
"GET");

J'avais vu cette solution mais hélas elle nécessitera plus de modification

dans mes js, mais s'il faut ....

Ne peut on pas mettre un header dans la requête qui demanderait à apache de
recharger ? .... mais là je ne suis plus sur d'être sur le bon groupe


Pour ça il faut que tu demandes à ton navigateur de ne pas utiliser le
cache, et je ne connais pas d'autre moyen pour ça que de rajouter un
rnd=... comme indiqué.

--
Olivier Ligny
Créateur web free-lance / www.cyber-tamtam.net


Avatar
BertrandB
Bonjour,

Je rencontre une petite difficulté qui dépasse mes compétences .. .
(c'est pas difficile ;) )

J'aurais besoin dans une requête XmHTPRequest de demander au serveur des
pages persos de bien vouloir me transmettre la dernière version du
fichier et pas celui qu'il a gardé en cache et au cache du navigateur de
ne pas me retransmettre ce qu'il a gardé.


Avec Firefox + pages perso de wanadoo :

xhr_object.open("GET", "articles/"+Article, false);
//Afin de faire l'edition il est indispensable que l'article ne soit
pas dans un cache
//Y compris sur le serveur
xhr_object.setRequestHeader("cache-Control", "no-store, no-cache,
must-revalidate");
xhr_object.setRequestHeader("cache-Control", "post-check=0,
pre-check=0");
xhr_object.setRequestHeader("cache-Control", "max-age=0");
xhr_object.setRequestHeader("Pragma", "no-cache");
xhr_object.send(null);

Me donne le résultat escompté, ne me demandez pas pourquoi c'est du
repompé telquel la lecture de la RFC m'a fait mal à la tête et ne m 'a
pas apporté de lumières.

pragme no-cache c'est pour http1.0
cache-Control max-age=0 c'est http1.1 pour le serveur
cache-Control no-store no-cache doit être honoré par les proxy et cac hes
cache-Control post-check=0 pre-check=0 je ne comprends pas ....