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

xmlhttprequest -> recuperer responseXML

5 réponses
Avatar
Mihamina Rakotomandimby (R12y)
Bonjour
Je cherche un bout de code qui me permet de faire:
url="http://un/truc/qui/me/donne/du/XML?avec&parametres"
le_xml=getRemoteXML(url);
Je suis dessus depuis 4 heures, je coirs que j'ai essayé de faire compliqué
quand on peut faire simple,...
Des pistes SVP?

Y a bien quelquechose comme:
[...]
xmlhttp.onreadystatechange=function(){stateChange()};
xmlhttp.open("GET",url,true);
xmlhttp.overrideMimeType('text/xml');
xmlhttp.send(null);

Avec:

function stateChange ()
{
if (xmlhttp.readyState==4)
{
if (xmlhttp.status==200)
{response=xmlhttp.responseXML;}
}
return response; // <- Lui là comment je le chope?
}

5 réponses

Avatar
Pascal PONCET
Mihamina Rakotomandimby (R12y) a écrit :
Je cherche un bout de code qui me permet de faire:
url="http://un/truc/qui/me/donne/du/XML?avec&parametres"
le_xml=getRemoteXML(url);



Bonjour,

Des pistes là :
https://developer.mozilla.org/fr/AJAX/Premiers_pas

La simplicité de leur exemple tient au fait que la fonction appelée par
le gestionnaire d'évènement "readystatechange" est encapsulée dans la
fonction globale qui crée une instance xmlhttprequest.

C'est un peu plus compliqué si on veut sortir le handler, ce qui serait
nécessaire pour gérer plusieurs instances.

Cordialement,
Pascal
Avatar
Pascal PONCET
Pascal PONCET a écrit :
C'est un peu plus compliqué si on veut sortir le handler, ce qui serait
nécessaire pour gérer plusieurs instances.



Une précision toutefois, c'est compliqué si on veut faire propre.
Je dis ça parce qu'on trouve beaucoup d'exemples où l'instance est
collée dans une variable globale, ce qui est plus immédiatement efficace
si on est pas trop regardant.


Cordialement,
Pascal




Avatar
BertrandB
Mihamina Rakotomandimby (R12y) a écrit :
Bonjour
Je cherche un bout de code qui me permet de faire:
url="http://un/truc/qui/me/donne/du/XML?avec&parametres"
le_xml=getRemoteXML(url);
Je suis dessus depuis 4 heures, je coirs que j'ai essayé de faire
compliqué quand on peut faire simple,...
Des pistes SVP?

Y a bien quelquechose comme:
[...]
xmlhttp.onreadystatechange=function(){stateChange()};
xmlhttp.open("GET",url,true);
xmlhttp.overrideMimeType('text/xml');
xmlhttp.send(null);

Avec:

function stateChange ()
{
if (xmlhttp.readyState==4)
{
if (xmlhttp.status= 0)
{response=xmlhttp.responseXML;}
}
return response; // <- Lui là comment je le chope?
}



Non on ne récupère pas la valeur du call back il faut soit la charger
dans une variable globale pour une utilisation après coup soit faire ce
qu'on à faire avec la réponse par exemple dans chtioblogue l'affichage
de l'article récupérer par Xhmtlrequest était réalisé par une fonction
appelée dans le callback.
Il y a plus de risque si la fonction callback lance elle même des
requêtes qui appellent la même callback ou une call back pouvant agir
sur les mêmes objets. On travail de manière asynchrone sans mécanisme de
gestion de la concurrence. Si c'est le cas on peut faire un objet
requêteur avec un fifo dans le quel on dépose les requêtes au lieu de
faire directement les xhtmlrequest.
chtioblogue est conçu sur cette idée. (en fait pour le calendrier il y a
un pool de requêteur chacun mettant à jour une ligne du calendrier)

vous pouvez toujours consulter sur
http://pagesperso-orange.fr/bertrand.belguise/blog/blog.html
et le moteur javascript
http://pagesperso-orange.fr/bertrand.belguise/blog/blog.js
Avatar
Fos Pat
Mihamina Rakotomandimby (R12y) wrote:
Bonjour
Je cherche un bout de code qui me permet de faire:
url="http://un/truc/qui/me/donne/du/XML?avec&parametres"
le_xml=getRemoteXML(url);



Si vous n'avez pas peur de charger 19ko de javascript, d'etre productif et
régler ce genre de problème en 2 minutes et 2 lignes de code:
http://docs.jquery.com/Ajax/jQuery.get
Avatar
Mickaël Wolff
Mihamina Rakotomandimby (R12y) a écrit :
Bonjour
Je cherche un bout de code qui me permet de faire:
url="http://un/truc/qui/me/donne/du/XML?avec&parametres"
le_xml=getRemoteXML(url);
Je suis dessus depuis 4 heures, je coirs que j'ai essayé de faire
compliqué quand on peut faire simple,...
Des pistes SVP?



Je pense que la manière la plus propre est d'utiliser le mécanisme de
closures (fermetures diront certains). Ça te permet de lier le contexte
de définition d'une fonction aux variables qui y sont déclarées.

Voici un exemple de comment utiliser XHR à l'aide des closures.
<http://lupusmic.org/labo/ajax.html.xml>

Mais certainement qu'on peut faire mieux.
--
Mickaël Wolff aka Lupus Michaelis
http://lupusmic.org