Maison  >  Article  >  interface Web  >  Résumé des questions courantes sur la capitalisation de certaines propriétés, événements et méthodes courants des objets Ajax

Résumé des questions courantes sur la capitalisation de certaines propriétés, événements et méthodes courants des objets Ajax

亚连
亚连original
2018-05-24 15:05:481228parcourir

J'ai été libre récemment, j'ai donc pris le temps de régler quelques trucs sur la méthode ajax. Dans les projets, on constate souvent que de nombreux problèmes dans la section ajax sont causés par l'insensibilité à la casse des attributs, des méthodes et des événements, ce qui conduit finalement à des problèmes dans le fonctionnement du programme. Nous allons vous présenter ici quelques problèmes courants liés au cas de. quelques attributs, événements et méthodes courants des objets ajax. Résumé

J'ai été relativement libre récemment, j'ai donc pris le temps de trier certaines choses sur la méthode ajax. Dans les projets, nous constatons souvent que de nombreux problèmes dans la section ajax sont causés par l'insensibilité à la casse des attributs, des méthodes et des événements, ce qui conduit finalement à des problèmes dans le fonctionnement du programme.

 Voici quelques attributs, événements et méthodes courants des objets ajax

 1) Les attributs des objets ajax standard incluent readyState, status, ResponseText, ResponseXML

2) Les attributs d'objet ajax non standard, pour les navigateurs IE, incluent le corps de réponse et le flux de données binaires. Si la compatibilité du navigateur n'est pas prise en compte, cet attribut + VBScript peut très bien résoudre le problème des caractères tronqués.

Code Visual Basic

Function Bytes2BStr(vin)'二进制转字串
   strreturn = ""
   for i = 1 to lenb(vin)
   thischarcode = ascb(midb(vin,i,1))
   if thischarcode < &h80 then
    strreturn = strreturn & chr(thischarcode)
   else
    nextcharcode = ascb(midb(vin,i+1,1))
    strreturn = strreturn & chr(clng(thischarcode) * &h100 + cint(nextcharcode))
    i = i + 1
   end if
   next
   Bytes2BStr = strreturn
End Function

 3) Événement onreadystatechange, fonction de transition d'état

4) Les méthodes incluent setRequestHeader, open et send, qui sont utilisées pour définir l'en-tête de réponse. Lorsque la méthode de soumission est spécifiée comme POST, le type de contenu doit être défini sur application/x-www-form-. urlencoded. Si cette réponse n'est pas définie en-tête, la page dynamique demandée ne peut pas obtenir la valeur sous forme de paires clé-valeur, mais les données soumises peuvent être générées à partir du flux binaire.

Référence

Comment obtenir le contenu soumis lorsque ajax est spécifié comme publication mais que le type de contenu n'est pas défini ou que la clé n'est pas spécifiée

 Facile à apparaître. Mauvaises questions

1) Pour les objets créés à l'aide de XMLHttpRequest, y compris IE7+, les attributs sont strictement sensibles à la casse. Sinon, la valeur de l'attribut. sera indéfini. Par exemple, readyState est écrit sous la forme readystate et ResponseText est écrit sous la forme ResponseText.

2) Pour le navigateur IE, si l'activexobject est jugé en premier, alors activexobject sera exécuté pour créer l'objet xhr, les attributs, les événements et les méthodes créés à l'aide d'acx ne sont pas sensibles à la casse

3) Lorsqu'il est créé à l'aide de XMLHttpRequest, onreadystatechange doit être entièrement en minuscules, sinon cela équivaut à attribuer un attribut personnalisé à l'objet xhr au lieu de la fonction de transition d'état réelle. De cette façon, le rappel n'est jamais exécuté. Pour les objets xhr créés par IE à l'aide d'activexobject, ils ne sont pas sensibles à la casse

4) Comme pour les points 2 et 3, lorsque XMLHttpRequest est créé, la méthode appelante doit être sensible à la casse, sinon il n'y aura pas d'erreur et une invite indiquant que la méthode est introuvable. IE n'est pas sensible à la casse lors de l'utilisation d'activexobject.


Il est particulièrement souligné que la méthode open doit être appelée avant que la méthode setRequestHeader puisse être exécutée, sinon il n'y aura pas d'erreurs.

 

Quelques suggestions de code ajax manuscrit

1) Lors de la soumission pour get, il n'est pas nécessaire de définir le type de contenu, sauf si la demande est quelque chose qui doit être vérifié pour la génération de type de contenu Certains fichiers de format de données correspondants. Par exemple, le service Web d'asp.net vérifiera le type de contenu si le type de contenu est spécifié comme application/json, la chaîne de format json correspondante sera générée.

2) Lors de la soumission pour get, s'il n'y a pas de données, il est préférable d'ajouter une valeur null comme paramètre lors de l'appel de la méthode d'envoi. xhr.send(null);

3) Lors de la soumission d'un message, n'oubliez pas d'appeler la méthode setRequestHeader pour définir le type de contenu sur application/x-www-form-urlencoded

après l'appel la méthode open.

4) Lors de l'utilisation de ResponseText, ResponseXML et ResponseBody [IE uniquement], l'attribut status doit être utilisé lorsque readyState==4, status status==200 [test en ligne] ou status status==0 [ tests locaux]

Code JavaScript

 var xhr = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject("microsft.xmlhttp");
   xhr.open(&#39;get&#39;, &#39;index.html&#39;, true);
   xhr.onreadystatechange = function () {
     if (4 == xhr.readyState) {
       if (200 == xhr.status || 0 == xhr.status) {
         //=========正常返回后的处理代码
       }
       else alert(&#39;动态页出问题了~~&#39;);
     }
   }
   xhr.send(null);

5) S'il est exécuté de manière asynchrone, vous devez ajouter une fonction de transition d'état, puis utilisez l'attribut ResponseText ou ResponseXML lorsque le bit readyState 4.

S'il est exécuté de manière synchrone, vous pouvez utiliser directement l'attribut ResponseText ou ResponseXML après l'envoi. Il n'est pas nécessaire d'ajouter la fonction de transition d'état onreadystatechange. Cependant, si la vitesse du réseau est lente pendant la synchronisation, il est facile de geler le navigateur et l'expérience utilisateur n'est pas bonne.

6) Le plus simple~~hoho~~utilisez plutôt le framework jquery.

J'ai compilé ce qui précède pour vous, j'espère que cela vous sera utile à l'avenir.

Articles connexes :

Ajax envoyant et recevant des requêtes

Analyse d'exemple d'image de chargement asynchrone Ajax

Explication détaillée de l'objet AJAX XMLHttpRequest

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn