Salut à tous,

je ne sais pas si je suis dans le forum approprié, mais si besoin un modo deplacera mon topic. Smiley jap

Voilà un bon moment que j'entend parler du XmlHttpRequest, que je lis, à doite à gauche, des bribes d'infomations à ce sujet, mais j'aimerais avoir vos avis sur quelques points.

- Un site utilisant le XmlHttpRequest est-il accessible au personnes handicapées ? Pourquoi ?
- Qu'en est-il niveau compatibilté, rapidité ?
- Est-il judicieux, actuellement, d'utiliser XmlHttpRequest pour son site ?
- XmlHttpRequest pose-t-il certains problèmes ? Si oui lequeles ?

Je suis aussi preuneur si vous avez d'autres informations à me faire passer à ce sujet. Smiley smile

Merci,
Antoine
Modifié par Bouda (13 Apr 2005 - 09:19)
Bouda a écrit :

- Un site utilisant le XmlHttpRequest est-il accessible au personnes handicapées ? Pourquoi ?


Quel type d'handicap ?
Si le navigateur ne gère pas le javascript ou xmlhttprequest -> problème (voir réponse plus bas)
Sinon, ça se résume à une requète à destination du serveur mais initiée via javascript.

Bouda a écrit :

- Qu'en est-il niveau compatibilté, rapidité ?


Compatibilité moyenne. Non normalisé qui plus est (mais tentative de le faire dans le cadre des Web applications).
Au niveau de la rapidité, je suppose que ce n'est pas plus lent qu'une requète effectuée "normalement".

a écrit :

- Est-il judicieux, actuellement, d'utiliser XmlHttpRequest pour son site ?


Ça dépend. Si c'est en intranet, oui, si ça apporte un plus.
Si c'est un site sur internet, il faut prévoir un fonctionnement alternatif de l'application si le javascript ou xmlhttprequest (opera le supporte en partie depuis la version 8 beta récente) n'est pas supporté.

a écrit :

Je suis aussi preuneur si vous avez d'autres informations à me faire passer à ce sujet. Smiley smile


http://jpspan.sourceforge.net/wiki/doku.php?id=javascript:xmlhttprequest
http://www.scss.com.au/family/andrew/webdesign/xmlhttprequest/
Modifié par Bobe (16 Feb 2005 - 17:18)
OK, donc pas la peine que je me défonce là dessus pour mon site.

Si jamais quelqu'un a d'autres infos qui pourraient m'êtres utiles, je suis toujours preneur. Smiley cligne

Merci Smiley smile
Modifié par Bouda (16 Feb 2005 - 18:53)
J'ai bossé sur XmlHTTPRequest, au point d'en arriver à simuler un Google suggest miniature. Je pense que c'est un outil très intéressant, car il permet de faire du transfert d'information côté client, et peut jouer par exemple le rôle de remplaçant de Flash, au niveau interactivité de base (navigation sans rechargement de la page).
On peut d'ailleurs comparer ces deux techniques: flash nécessite un plugin, javascript un navigateur (avec un support de XMLHTTP dans ce cas). Elles n'ont pas du tout le même rôle, mais au niveau accessibilité, ça revient au même !
Maintenant la technique: c'est encore très peu répandu sur le web, mais en fait son utilisation n'est pas si difficile que ça à comprendre. Quelqu'un qui aurait une idée de ce qu'est HTTP, qui aurait un niveau moyen en javascript et qui utilise un langage de programmation côté serveur devrait s'en sortir. Un petit aperçu de ce que je fais (testé sous Firefox et IE):
Javascript:
function HTTP() {
var xmlhttp=false;
if (window.XMLHttpRequest)  xmlhttp = new XMLHttpRequest(); 
else if (window.ActiveXObject) {
try {xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");}
catch(e) {xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");}
}
return xmlhttp;
}

 function postURL(url,variable,valeur) {
 var xmlhttp=new HTTP();
 if(xmlhttp) {
   xmlhttp.open("POST",url,true);
xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
   xmlhttp.send(variable+"="+valeur);
 xmlhttp.onreadystatechange=function() {
    if (xmlhttp.readyState==4)  //A adapter
document.getElementById("result").innerHTML+=xmlhttp.responseText+"<br/>";
   }
   }
  }

HTML:
<textarea id="mess" cols="40" rows="8">
Message
</textarea><br />
<button type="submmit" onclick="postURL('test.php','request",document.getElementById('mess').value); return false">POST</button>
<div id="result">
</div>

PHP (test.php):
echo "Envoyé:<br />".stripslashes($_POST["request"]);


Bonne chance pour essayer de comprendre ...
Smiley murf
Modifié par vchahun (19 Feb 2005 - 18:14)
Salut,

Je m'interresse depuis peu à XMLHTTPRequest. J'ai cependant un petit pb technique. Le text que la fonction me retourne ne possède plus d'accents (à la place on retrouve des ? ou encore des carrés).

Est-ce normal ?
Comment y remédier ?

Merci
Alors en fait le problème est au retour du flux

Si pas exemple tu post tes variables vers un fichier php, en retour tu dois faire un urlencode de la variable retourné.

Pour l'afficher une fois retourné, tu fais un unescape() sur la chaine
Moi je rencontre un autre problème que j'ai contourné, mais comme il y a pas encore des tonnes de doc, je ne sais pas si je me trompe ou non

En fait il semblerait que l'on ne peut poster qu'une variable en POST, je passe donc le reste en GET

j'utilise la fonction suivante

function sendData(data,dataenget,page)
{
if(document.all)
{
var XhrObj = new ActiveXObject("Microsoft.XMLHTTP") ;
}
else
{
var XhrObj = new XMLHttpRequest();
}
var content = document.getElementById("contenusousref");
XhrObj.open("POST", page+"?"+dataenget);
XhrObj.onreadystatechange = function()
{
if (XhrObj.readyState == 4 && XhrObj.status == 200)
content.innerHTML = unescape(XhrObj.responseText) ;
}
XhrObj.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
XhrObj.send(data);
}

un exmple d'une chaine qui utilise la fonction :

<a href="javascript:sendData('reference='+document.FormPost.reference.value,'refsousref='+document.FormPost.refsousref.value+'&descsousref='+document.FormPost.descsousref.value,'xmlajtmpsousref.php')">Envoyer</a>

La première est envoyé en post et le deuxième et passé en get ici

XhrObj.open("POST", page+"?"+dataenget);

ca fonctionne trés bien, mais je sais pas si vous faite la même chose ?

Une dernière chose, j'étais tombé sur un site qui expliquait comment uploader une fichier via le xmlhttp sans rechargement de la page, mais j'arrive plus à le retrouver, vous auriez pas ca dans vos favoris ?
Modifié par Gwendal (22 Feb 2005 - 13:24)
salut,
pour eviter les pb sur les retours de chaines passées en post, tu met un header dans ton fichier PHP:

<?php
// preciser le type de données transférées depuis le serveur
header('Content-type: text/html; charset=iso-8859-1');
// et affichage des chaînes de données qui vont être reprises par ton .responseText
echo $_POST['blabla'];
?>
@Gwendal et Jerkoo,
Merci d'éditer vos posts et d'utiliser les balises [ code][ /code] (sans les espaces), comme indiqué dans les règles.