IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

AJAX Discussion :

[AJAX] question de taille ?


Sujet :

AJAX

  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mai 2006
    Messages
    226
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Mai 2006
    Messages : 226
    Points : 532
    Points
    532
    Par défaut [AJAX] question de taille ?
    Bonjour tout le monde.

    voila j'utilise ajax pour mettre à jour des "select". Jusque la tout va bien et ça fonctionne... presque ! ^^

    je viens de me rendre compte que dans certains cas mes listes n'etaient pas rafraichies, j'ai remarqué qu'a chaque fois je renvoi du code xml plus lourd que d'hab (18Ko). Ce qui m'intrigue c'est que sur Opera je n'ai aucun problème, alors que sur IE et Firefox, j'ai le probleme...

    est-ce que c'est vraiment une limitation des navigateurs ?

    Dans Firefox, la console d'erreur me dit que xmlIn (mon retour en xml) est null, alors que si je l'affiche juste avant j'ai bien tout mon code xml...

    merci d'avance

  2. #2
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mai 2006
    Messages
    226
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Mai 2006
    Messages : 226
    Points : 532
    Points
    532
    Par défaut
    un p'tit up, j'pense que je ne suis pas le premier a qui ça arrive ... si ?

  3. #3
    Expert confirmé
    Avatar de RomainVALERI
    Homme Profil pro
    POOête
    Inscrit en
    Avril 2008
    Messages
    2 652
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : POOête

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 652
    Points : 4 164
    Points
    4 164
    Par défaut
    L'arrivée des devins et thaumaturges a été reportée Il va falloir que tu nous montres quelques bouts de code (notamment tes fonctions ajax côté js) si on veut te sortir de là

    ...pour les linguistes et les curieux >>> générateur de phrases aléatoires

    __________________

  4. #4
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mai 2006
    Messages
    226
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Mai 2006
    Messages : 226
    Points : 532
    Points
    532
    Par défaut
    y a pas de soucis pour que je vous montre le code, mais vu que ma question etait sur une possible limitation ...

    alors mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    /*
     * Returns an new XMLHttpRequest object, or false if the browser
     * doesn't support it
     */
    function newXMLHttpRequest() {
     
      var xmlreq = false;
     
      // Create XMLHttpRequest object in non-Microsoft browsers
      if (window.XMLHttpRequest) {
        xmlreq = new XMLHttpRequest();
     
      } else if (window.ActiveXObject) {
     
        try {
          // Try to create XMLHttpRequest in later versions
          // of Internet Explorer
     
          xmlreq = new ActiveXObject("Msxml2.XMLHTTP");
     
        } catch (e1) {
     
          // Failed to create required ActiveXObject
     
          try {
            // Try version supported by older versions
            // of Internet Explorer
     
            xmlreq = new ActiveXObject("Microsoft.XMLHTTP");
     
          } catch (e2) {
     
            // Unable to create an XMLHttpRequest by any means
            xmlreq = false;
          }
        }
      }
     
    return xmlreq;
    }
     
     /*
    	* Returns a function that waits for the specified XMLHttpRequest
    	* to complete, then passes it XML response to the given handler function.
      * req - The XMLHttpRequest whose state is changing
      * responseXmlHandler - Function to pass the XML response to
      */
     function getReadyStateHandler(req, responseXmlHandler) {
     
       // Return an anonymous function that listens to the XMLHttpRequest instance
       return function () {
     
         // If the request's status is "complete"
         if (req.readyState == 4) {
     
           // Check that we received a successful response from the server
           if (req.status == 200) {
             // Pass the XML payload of the response to the handler function.
             responseXmlHandler(req.responseXML);
     
           } else {
     
             // An HTTP problem has occurred
             alert("HTTP error "+req.status+": "+req.statusText);
           }
         }
       }
     }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    function changePickLists(listId, value, [...], otherList4, otherListValue4) {
    	var req = newXMLHttpRequest();
     
    	req.onreadystatechange = getReadyStateHandler(req, updatePickLists);
     
     	req.open("POST", doActions.jsp", true);
     	req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
     	req.send("action=changePickLists&listId="+encodeURIComponent(listId)+"&value="+encodeURIComponent(value)+"&[...], );
    }
     
    function updatePickLists(xmlIn) {
     
    	var list = xmlIn.getElementsByTagName("items")[0];
    	var items = list.getElementsByTagName("item");
    [...] 
    }
    et monde code java genere du xml a cette sauce :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
     
    <item>
    <name>blabla</name>
    <value><![CDATA[blabla]]></value>
    <name>blabla</name>
    <value><![CDATA[blabla]]></value>
    <name>blabla</name>
    <value><![CDATA[blabla]]></value>
    <name>blabla</name>
    <value><![CDATA[-]]></value>
    <name>blabla</name>
    <value><![CDATA[-]]></value>
    </item>
    <item>
    <name>blabla</name>
    <value><![CDATA[blabla]]></value>
    <name>blabla</name>
    <value><![CDATA[blabla]]></value>
    <name>blabla</name>
    <value><![CDATA[blabla]]></value>
    <name>blabla</name>
    <value><![CDATA[-]]></value>
    <name>blabla</name>
    <value><![CDATA[Annealed]]></value>
    </item>
    <item>
    voila, je ne sais pas si c'est suffisant...

  5. #5
    Expert confirmé
    Avatar de emmanuel.remy
    Inscrit en
    Novembre 2005
    Messages
    2 855
    Détails du profil
    Informations personnelles :
    Âge : 55

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 855
    Points : 4 045
    Points
    4 045
    Par défaut
    T'as posté deux fois le même code

    Et tu peux stp mettre à disposition le code complet du XML qui t'est renvoyé et ce que tu en fait après ?


    ERE
    Quand une tête pense seule, elle devient folle.

  6. #6
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mai 2006
    Messages
    226
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Mai 2006
    Messages : 226
    Points : 532
    Points
    532
    Par défaut
    désolé pour le code, c'est corrigé.

    le code xml est toujours le meme que le bou que j'ai posté, la seule difference c'est qu'un fois je peux avoir 30 <item> comme je peux en avoir 2000...

    quand ça bloque, il rentre juste dans la function udatepicklists et me dit que xmlIN est null, a cette ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var list = xmlIn.getElementsByTagName("items")[0];

  7. #7
    Expert confirmé
    Avatar de emmanuel.remy
    Inscrit en
    Novembre 2005
    Messages
    2 855
    Détails du profil
    Informations personnelles :
    Âge : 55

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 855
    Points : 4 045
    Points
    4 045
    Par défaut
    Salut, je viens de tester avec 46000 de tes enregistrements, taille du fichier 12Mo et je ne rencontre aucun problème dans Firefox 3.0.8.

    Par contre IE 6 me plante allègrement comme tu le décris.

    A suivre...

    ERE
    Quand une tête pense seule, elle devient folle.

  8. #8
    Expert confirmé
    Avatar de emmanuel.remy
    Inscrit en
    Novembre 2005
    Messages
    2 855
    Détails du profil
    Informations personnelles :
    Âge : 55

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 855
    Points : 4 045
    Points
    4 045
    Par défaut
    Re,

    Je viens de faire quelques essais et chose très intéressante, il s'avère que si responseXML est null, le responseText ne l'est pas du tout, et même est correct.

    D'ailleurs j'ai le sentiment que ton souci ressemble à celui-ci http://www.developpez.net/forums/d48...nquee-sous-ie/

    ERE
    Quand une tête pense seule, elle devient folle.

  9. #9
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mai 2006
    Messages
    226
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Mai 2006
    Messages : 226
    Points : 532
    Points
    532
    Par défaut
    wahou, ça à l'air de marcher ! bon maintenant je pense qu'il faut que je teste quel navigateur lance l'action parce que maintenant sous Opera ça ne marche plus ^^.

    je regarde ça, un grand merci !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AJAX] Questions concernant Ajax
    Par javaboy dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 25/01/2007, 15h56
  2. [AJAX] Question
    Par H-bil dans le forum Général JavaScript
    Réponses: 10
    Dernier message: 16/10/2006, 11h52
  3. [Ajax] question avec onreadystatechange
    Par lhulard dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 06/06/2006, 14h46
  4. [AJAX] Question sur AJAX
    Par R@IZER dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 03/04/2006, 19h45
  5. [AJAX] Question sur un tutos ajax
    Par maximenet dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 23/03/2006, 21h05

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo