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

JavaScript Discussion :

[AJAX] Ajax optimisation et function javascript !


Sujet :

JavaScript

  1. #1
    Membre tr�s actif
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    205
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 205
    Par d�faut [AJAX] Ajax optimisation et function javascript !
    Salut !

    Oui le titre est un peu racoleur, mais bon lol ! faut bien de temps � autres ^^ !

    Donc voil� mon souci, je suis pas trop un pro en Ajax, c'est la premi�re fois que je l'utilise vraiment...

    A la base cela n'a pas �t� simple de le combiner avec mon site web et le mod�le MVC ...

    J'ai donc repris mes fonctions, et ait essay� de les rendre le plus g�n�rique possible ... par contre probl�me :


    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
     
    //Bandeau.jsp
    <a href="javascript:MakeRequestMenu('Test')"> Test </a> 
    //j'ai une servlet qui est mappée à "Test"
     
    //test.js
    function MakeRequestMenu(servlet){
    getXmlRequest(); //ici je récupère l'objet active X etc ... pas utile à détailler
     
    req.onreadystate = newResponseToDiv;
    req.open("GET", servlet, true) //ici j'utilise mon paramètre servlet pour la généricité, jusqu'ici tout fonctionne ....
    req.send(null);
    //desfois je mets un "return false;" ou pas, pas trop saisi l'utilité ....
    }
     
    function newResponseToDiv(){
    if (req.readyState ==4 && req.status == 200){
          var tmp = req.responseText;
          if (typeof(tmp)!= "undefined") {
              mdiv = document.getElementById("contenu");
              mdiv.innerHTML = tmp;
         }else alert("Erreur pendant la mise à jour de la page");
    }
    }
    Tout ce code fonctionne ... apr�s si il y a des erreurs dans le code ou des ajustements � faire j'ai l'oreille ouverte ...

    Apr�s j'ai voulu placer le "contenu" dans un parametre "div" histoire que je n'ai pas � r��crire une fonction javascript pour chaque zone de ma page ...
    Comme cela :

    Mais l� le rafraichissement de la page ne fonctionne plus ...

    Est ce que quelqu'un a une id�e ?

    Code qui ne fonctionne plus, inspir� du premier exemple :
    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
     
    //Bandeau.jsp
    <a href="javascript:MakeRequestMenu('Test','contenu')"> Test </a> 
    //j'ai une servlet qui est mappée à "Test", j'ai ajouté 'contenu' qui est une de mes Divs CSs ...
     
    //test.js
    function MakeRequestMenu(servlet, div){
    getXmlRequest(); //ici je récupère l'objet active X etc ... pas utile à détailler
     
    req.onreadystate = newResponseToDiv(div); // pour faire circuler le paramètre ...
    req.open("GET", servlet, true) //ici j'utilise mon paramètre servlet pour la généricité, jusqu'ici tout fonctionne ....
    req.send(null);
    //desfois je mets un "return false;" ou pas, pas trop saisi l'utilité ....
    }
     
    function newResponseToDiv(div){
    if (req.readyState ==4 && req.status == 200){
          var tmp = req.responseText;
          if (typeof(tmp)!= "undefined") {
              mdiv = document.getElementById(div); // la ca ne passe plus, la propagation du parametre se fait mal ou je ne sais pas !
              mdiv.innerHTML = tmp;
         }else alert("Erreur pendant la mise à jour de la page");
    }
    }
    Merci pour votre pr�cieuse aide...

  2. #2
    R�dacteur

    Avatar de Bovino
    Homme Profil pro
    D�veloppeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 55
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activit� : D�veloppeur Web
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par d�faut
    D�j� :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    req.onreadystate = newResponseToDiv;
    je suis surpris que �a fonctionne !
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    req.onreadystatechange = newResponseToDiv;
    ensuite, tu ne peux pas passer de param�tre de la fa�on dont tu le fais, essaye plut�t :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    req.onreadystatechange = function(){newResponseToDiv(div);}
    Pas de question technique par MP !
    Tout le monde peut participer � developpez.com, vous avez une id�e, contactez-moi !
    Mes formations video2brain : La formation compl�te sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'int�gration de JSFiddle et CodePen sur le forum

  3. #3
    Membre Expert Avatar de DoubleU
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 106
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 106
    Par d�faut
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    req.send(null);
    //desfois je mets un "return false;" ou pas, pas trop saisi l'utilité ....
    Pour le coup tu devrais le mettre ^^

    Le truc, c'est que quand tu appliques une fonction javascript sur le onclick d'un lien, si tu ne retourne pas false, l'action du click sur le lien va se produire, c'est � dire que tu vas changer de page et adieu rafraichissement. En retournant false, tu bloques ce comportement et donc tu restes sur la meme page.

  4. #4
    Membre tr�s actif
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    205
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 205
    Par d�faut
    salut Bovino !

    J'ai oubli� le "change" � "onreadystate" non �� s'est bien �crit, j'ai juste fait une erreur en le postant sur le forum d�sol� !

    Sinon, oui ce serait bizarre que ca fonctionne ^^ !

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    req.onreadystatechange = newResponseToDiv;
    Oui, je sentais que le probl�me venait de par l� !
    Ce qui me surprenait c'est de devoir l'appeler comme ca plut�t que comme �a :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    req.onreadystatechange = newResponseToDiv();
    Du moins quand on appelle une fonction JS sans argument depuis la partie "vue", c'est comme cela qu'on le fait ! avec le "()" en fin de fonction ...

    Ici on appel une fonction JS � partir de JS ... donc je sais pas c'est peut �tre une norme ...

    Je vais essayer ta solution, �a vient surement de l�, merci !
    Tu as compris et solutionner rapidement mon probl�me !

    Au fait mon code Ajax semble standard ?
    Car j'aime bien faire les choses bien ! Mais j'ai pas forc�ment l'exp�rience qu'il me faut !

    LUT !

  5. #5
    Membre tr�s actif
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    205
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 205
    Par d�faut
    Salut DoubleU et ok merci !

    Par contre l� j'appel pas mon javascript sur le "onclick" mais sur le "href" !

    mais merci de l'explication !

    En fait quand je mets le "return false;", il me balance une nouvelle page blanche juste avec false ! h� h� h� !

    et quand je l'enl�ve �a va bien !
    �a fonctionnerait surement comme tu le dis, si j'avais utilis� mon action sur "onclick" plut�t que sur "href" !

  6. #6
    Membre tr�s actif
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    205
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 205
    Par d�faut
    merci Bovino, apr�s une erreur de syntaxe de ma part, ta solution marche effectivement !

    Maintenant encore plus compliqu�, je voudrais depuis un formulaire :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
     
    <form id="login" method="get" action="" onSubmit="return MakeRequest('Log','contenu','listAttribute')"
    //"Log" est une servlet mappé, "contenu" ma div Css centrale, "listAttribute" étant la liste de mes attributs et leur valeurs ...
    Pour ici les attributs �tant :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
     
    <input type="text" name="login" value=""/>
    <input type="text" name="password" value=""/>
    Je voudrais que ma listAttribute contienne soit (name, name.value, password, password.value)

    ou ((name,name.value),(password,password.value)) ...

    Cela me permettrait d'ecrire mon Url dans mes fonctions ajax, dynamiquement !
    Et donc d'avoir une seule ou quelque unes fonctions ajax, qui me servent � tout faire ...

    Ou alors en utilisant dans mon ajax les fonctions getElementById, getElementByName etc ? non ?

Discussions similaires

  1. [AJAX] ajax et function javascript
    Par bailamos dans le forum AJAX
    R�ponses: 10
    Dernier message: 17/02/2010, 13h16
  2. [AJAX] Ajax et ex�cution des fonctions javascript
    Par Bobtop dans le forum G�n�ral JavaScript
    R�ponses: 5
    Dernier message: 27/06/2006, 15h22
  3. [AJAX] R�ponse XML - Functions Javascript
    Par ..:: Atchoum ::.. dans le forum G�n�ral JavaScript
    R�ponses: 24
    Dernier message: 24/01/2006, 03h02
  4. [AJAX] Ajax ne r�actualise pas le javascript ?
    Par shadowbob dans le forum G�n�ral JavaScript
    R�ponses: 8
    Dernier message: 23/01/2006, 08h26
  5. [AJAX] AJAX et javascript
    Par spud5351 dans le forum G�n�ral JavaScript
    R�ponses: 3
    Dernier message: 20/09/2005, 10h16

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