Forums : Xul, Xbl, JS...

Aller à la discussion :  Plus récente Plus ancienne

# [Résolu] Xmlhttprequest retourne une valeur stocké dans mon Cache

Envoyé par : Raphael

Date : 29/04/2007 10:02

Bonjour, pour checker mes MAJ, je me sers de Xmlhttprequest pour me connecter à un fichier .xml sur mon serveur, de cette manière :

// On regarde si une M.A.J. YCD est disponible dans le dépôt
var req = new XMLHttpRequest();
req.open('GET', window.opener.UserPrefs['Ycd_Repository'], false); 
req.send(null);
if(req.status == 200)
	dump(req.responseText);
var data = req.responseText;
data = data.replace(/\<\?xml version="1.0" encoding="UTF-8"\?\>/,"");
var xml_data = new XML(data);
var Ycd_Update = xml_data.update[0].@id;

Et bien quand j'uploade un nouveau fichier de MAJ via FTP, mon logiciel XUL ne voit pas forcément les changements. Et j'ai remarqué sous Ubuntu que si je supprimais le contenu du répertoire ./mylogin/myapp/Cache/ et que je relançais mon application, là... il voit les MAJ !

J'en conclue donc que malgré mon appel XMLHttpRequest(), Xulrunner ne se donne pas la peine de se connecter à mon fichier .xml sur mon serveur mais se sert de celui qu'il a en cache.

Quelqu'un a-t-il une idée simple pour forcer cette connexion au serveur et empêcher de regarder dans le cache ?

Y aurait bien la solution que je supprime tout ce qui se trouve dans le cache de manière manuelle par une petite fonction que je pourrais faire, mais c'est pas très propre non ?

Merci.

# Re: Xmlhttprequest retourne une valeur stocké dans mon Cache, comment faire pour forcer la MAJ Internet ?

Envoyé par : chBok

Date : 29/04/2007 10:29

Tu peux aussi ajouter une "variable" fictive à la fin de la requête Web, genre url+"&rnd="+Math.random(). L'url étant différente, Firefox sera obligé de recharger les données depuis le serveur.

# Re: Xmlhttprequest retourne une valeur stocké dans mon Cache, comment faire pour forcer la MAJ Internet ?

Envoyé par : Raphael

Date : 29/04/2007 11:17

Ok... donc si j'ai bien compris :

req.open('GET', window.opener.UserPrefs['Ycd_Repository']+"&rnd="+Math.random(), false); 

Malheureusement ça ne mache pas car mon adresse n'est pas de la forme adresse.../index.php?act=1&rnd=789745 mais adresse.../fichierxml.xml&rnd=789745 du coup car mon fichier xml est statique et non dynamiquement généré...

Et forcément, ça marche pas... il trouve pas le fichier. Y a un moyen de contourner le problème ?

# Re: Xmlhttprequest retourne une valeur stocké dans mon Cache, comment faire pour forcer la MAJ Internet ?

Envoyé par : chris

Date : 29/04/2007 15:20

Euh... remplace le & par un ? si tu n'as qu'un paramètre.

<edit>En fait, j'aurais du préciser pour être exact non pas "si tu n'as qu'un paramètre" mais plutôt "si c'est le premier paramètre". On sépare ensuite les paramètres entre-eux par &</edit>

# Re: Xmlhttprequest retourne une valeur stocké dans mon Cache, comment faire pour forcer la MAJ Internet ?

Envoyé par : Raphael

Date : 29/04/2007 16:48

Impeccable ça a l'air de marcher, merci beaucoup.

# Re: [Résolu] Xmlhttprequest retourne une valeur stocké dans mon Cache

Envoyé par : chBok

Date : 29/04/2007 21:44

Merci chris d'avoir apporter cette précision :-)

# Re: [Résolu] Xmlhttprequest retourne une valeur stocké dans mon Cache

Envoyé par : chris

Date : 30/04/2007 00:10

Ben, c'est la moindre des choses voyons, pour une fois que je peux répondre :-)

Il n'est plus possible de poster des messages dans ce forum.


Copyright © 2003-2013 association xulfr, 2013-2016 Laurent Jouanneau - Informations légales.

Mozilla® est une marque déposée de la fondation Mozilla.
Mozilla.org™, Firefox™, Thunderbird™, Mozilla Suite™ et XUL™ sont des marques de la fondation Mozilla.