XMLHttpRequest Détails et faire des requêtes asynchrones à AjaxPeu importe comment le type XMLHttpRequest est instancié, et quel que soit le navigateur ou la plate-forme, XMLHttpRequest a le même ensemble de méthodes et propriétés. Tableau 4-1 définit les propriétés et méthodes. Je ne donne pas de détails plus des méthodes, telles qu'elles sont utilisées dans tout l'article. Cependant, je ne veux donner une attention particulière aux propriétés, car ils sont largement utilisés. Lorsque une demande a récupéré des données, quatre propriétés sont utilisées pour indiquer comment la demande Fared. Considérons le code HTML suivant, qui référence les quatre propriétés et est appelée après la méthode Send a accompli: document.getElementById ( 'httpcode'). xmlhttp.status innerHTML = document.getElementById ( 'httpStatus'). xmlhttp.statusText innerHTML = document.getElementById ( 'result'). xmlhttp.responseText innerHTML = document.getElementById ( ' xmlresult '). innerHTML = xmlhttp.responseXML;
Les quatre propriétés peuvent être subdivisés en deux sous-catégories: résultat et l'état HTTP. Le statut et les propriétés statusText récupérer le résultat des codes HTTP. La propriété d'état contient une valeur entière, tel que 200 pour le succès. La propriété statusText contient une représentation textuelle du code de résultat HTTP, comme OK. Le responseText et propriétés responseXML contiendra le résultat de la requête HTTP. La différence entre les deux propriétés est que responseText contient un tampon de chaîne des résultats, et les références responseXML une représentation XML DOM des résultats. Faire des requêtes asynchronesIl est possible d'utiliser l'objet XMLHttpRequest de manière synchrone, ce qui signifie que le moment envoyer est appelée, le navigateur arrête le traitement d'autres messages et attend une réponse. Mais c'est une mauvaise idée d'utiliser l'objet XMLHttpRequest de manière synchrone, il verrouille le navigateur. Pour le moment, en ignorant ce code LoadAtomFeed et se concentrant sur XMLHttpRequest, regardons comment le navigateur peut être verrouillée. L'exemple suivant est une page ASP.NET qui se bloque pendant dix secondes, et il sera référencé par l'objet XMLHttpRequest: <% @ Page Language = "C #"%> L'échantillon ASP.NET est écrit en utilisant le langage de programmation C #, et il n'y a qu'une seule instruction, System.Threading.Thread.Sleep. La déclaration unique entraîne le thread courant de dormir pendant dix secondes. La solution est d'utiliser un XMLHttpRequest asynchrone d'Ajax. Une requête asynchrone ne va pas bloquer le navigateur et l'utilisateur peut continuer cliquant dessus ou en utilisant d'autres onglets du navigateur. Le code source suivant est le correctement écrit une application Ajax d'utiliser une requête asynchrone:
Il ya plusieurs nouveaux ajouts à la demande d'Ajax réécrite, et qu'ils traitent les questions techniques de chargement de contenu de façon asynchrone. Commençons en mettant l'accent sur la fonction GetIt. La mise en œuvre de GetIt est similaire aux exemples précédents application Ajax, si ce n'est que le troisième paramètre de la méthode ouverte est vrai pour indiquer que la demande sera asynchrone. Cela signifie que lorsque la méthode Send est appelé , il retournera immédiatement. Chaque fois que XMLHttpRequest fonctionne en mode asynchrone, le feedback est donné à l'appelant sur l'état de la demande. La propriété onreadystatechange est une fonction qui reçoit le feedback. Il est important de noter que la fonction de rétroaction doit être attribuée avant chaque envoi, parce que c'est sur demande de l'achèvement de propriété onreadystatechange est réinitialisé. Cela est évident dans la source de Mozilla et Firefox. La propriété onreadstatechange est attribué la fonction AsyncUpdateEvent. Dans la mise en œuvre de AsyncUpdateEvent est une instruction switch qui teste l'état actuel de la demande. Quand une requête asynchrone est en fait, le script est libre de poursuivre l'exécution de code. Ceci pourrait causer des problèmes si le script tente de lire les résultats de demande avant la demande a été complétée. En utilisant la propriété readyState, il est possible de connaître le stade de la requête HTTP. La propriété readyState peut contenir l'une des cinq valeurs, où chaque valeur représente un état requête: • 0: L'instance XMLHttpRequest est dans un état incohérent, et les données de résultat ne doit pas être le référencement. • 1: Une demande est en cours, et les données de résultat ne doit pas être récupérées. • 2: La demande a téléchargé les données de résultat et est-ce la préparation de référence. • 3: Le script ne peut interagir avec l'instance de XMLHttpRequest, même si les données ne sont pas totalement chargé. • 4: Données de la demande et le résultat sont complètes et ont été finis. La demande des États semble indiquer qu'il est possible de manipuler les propriétés différentes, à différents états. Le problème est que tous les navigateurs ne supportent la propriété mêmes États à les codes même état. La croix seule plate-forme de solution est de faire référence aux propriétés résultat XMLHttpRequest (statut, statusText, responseText, et responseXML) lorsque l'État demande est égal à 4. Quand l'Etat demande est 4, vous pouvez être sûr que les propriétés résultat contenir une valeur valide. L'exécution de la demande aboutit asynchrone d'Ajax dans une option d'achat, et le navigateur n'est pas verrouillé. Vous pouvez cliquer sur le bouton, ouvrez un nouveau navigateur, et surfer à un autre site Web. un article présenté par Sonja Lande Disclaimer:Notre site n'est pas responsable du contenu de cet article. Webarticles est une ressource d'information gratuite. Important: Cet article «XMLHttpRequest Détails et faire des requêtes asynchrones à Ajax» a été traduit par un logiciel automatique. Nous nous sentons désolés pour les fautes d'orthographe que mai ont eu lieu. Nous vous remercions de votre compréhension.
|
||||||||
| Online: 263 users browsing the articles directory |
|
|