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] Où placer open() et send()?


Sujet :

AJAX

  1. #1
    Membre du Club
    Inscrit en
    Septembre 2010
    Messages
    128
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 128
    Points : 51
    Points
    51
    Par défaut [AJAX] Où placer open() et send()?
    Bonjour,

    La question va sans doute paraître stupide mais tant pis. Ou doit ton placer open() et send()?
    Sur des codes que j'ai pus trouver sur le net ils se trouvent parfois avant la fonction onreadystatechange, parfois après et parfois open() se trouve avant avant la fonction onreadystatechange et send() après cette même fonction...du coup, quelle est la bonne pratique?

    Celle-ci?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    function teste_ajax(){
        var mavariable = objet_XMLHttpRequest();
        mavariable.onreadystatechange = function(){
            if(mavariable.readyState == 4 && mavariable.status == 200){
                document.getElementById("mondiv").innerHTML=mavariable.responseText;
            }
            else{
                document.getElementById("mondiv").innerHTML=mavariable.status;
            }
        };
        mavariable.open(***);
        mavariable.send(***);
    }
    Merci

  2. #2

  3. #3
    Membre du Club
    Inscrit en
    Septembre 2010
    Messages
    128
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 128
    Points : 51
    Points
    51
    Par défaut
    Ok, dans les tutoriels c'est toujours à la fin, merci .

    Du coup j'ai une autre question. Dans le tutoriel concernant les Listes liées de cette même page, on voit que la méthode utilisé est POST alors que aucune données n'est ajoutés/modifiés. Dans une question posé ce matin http://www.developpez.net/forums/d12...x-get-vs-post/ on ma laissé entendre que :
    GET si c'est juste pour demander une ressource.
    POST pour modifier/enregistrer une ressource.

    Le tutoriel ne devrait il donc pas utiliser la méthode GET?

  4. #4
    Invité
    Invité(e)
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    				xhr.open("GET","ajax.php",true);
    				xhr.send(null);
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    				// Ici on va voir comment faire du post
    				xhr.open("POST","ajaxLivre.php",true);
    				// ne pas oublier ça pour le post
    				xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
    				// ne pas oublier de poster les arguments
    				// ici, l'id de l'auteur
    				sel = document.getElementById('auteur');
    				idauteur = sel.options[sel.selectedIndex].value;
    				xhr.send("idAuteur="+idauteur);
    Pour simplifier, je dirais :
    - "POST" quand on doit transmettre des paramètres ("idAuteur="+idauteur)
    - "GET" sinon, bien qu'on puisse aussi trnasmettre des paramètres, mais autrement : xhr.open("GET","ajax.php?idAuteur="+idauteur,true);.
    Perso, j'utilise uniquement "POST".

    Au lieu de te poser des questions métaphysiques, pourquoi ne pas simplement faire tes propres essais ? et adopter tes propres préférences ?

  5. #5
    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 : 53
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Le tutoriel ne devrait il donc pas utiliser la méthode GET?
    Théoriquement, si
    Mais dans la pratique
    c'est pas parce que c'est comme ça que sont définis les verbes que tout le monde l'applique
    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

  6. #6
    Membre du Club
    Inscrit en
    Septembre 2010
    Messages
    128
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 128
    Points : 51
    Points
    51
    Par défaut
    Citation Envoyé par jreaux62 Voir le message
    Au lieu de te poser des questions métaphysiques, pourquoi ne pas simplement faire tes propres essais ? et adopter tes propres préférences ?
    Je fais des testes pour comprendre mais visiblement tout le monde a ses préférences qui ne sont peut être pas toujours les meilleurs. Donc je préfère poser des questions "métaphysiques" qui peuvent sembler stupides pour partir sur de bonnes base plutôt que ne rien dire et faire n'importe quoi !

    Quand vous dites : ""POST" quand on doit transmettre des paramètres...", c'est à dire? C'est paramètres servent à récupérer des données ou à modifier/enregistrer des données voir même les 2?

    Si je pose cette question une fois de plus "métaphysique" c'est parce qu'il est dit :
    Citation Envoyé par wikipedia
    GET
    C'est la méthode la plus courante pour demander une ressource. Une requête GET est sans effet sur la ressource, il doit être possible de répéter la requête sans effet.

    POST
    Cette méthode doit être utilisée pour soumettre des données en vue d'un traitement à une ressource (typiquement depuis un formulaire HTML). L'URI fournie est l'URI d'une ressource à laquelle s'appliqueront les données envoyées. Le résultat peut être la création de nouvelles ressources ou la modification de ressources existantes.

  7. #7
    Invité
    Invité(e)
    Par défaut
    Il n'y a pas de question stupide.
    Par contre :
    Envoyé par wikipedia
    Là, je dis : lol !

    A un moment donné, il faudra quand même faire appel à tes propres factultés intellectuelles pour trier le bon grain de l'ivraie.
    Autrement dit : éviter de mélanger les torchons et les serviettes.

  8. #8
    Membre du Club
    Inscrit en
    Septembre 2010
    Messages
    128
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 128
    Points : 51
    Points
    51
    Par défaut
    Mais heuuuuuu, je fais que citer la source .

  9. #9
    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 : 53
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Bah... La RFC et le W3C disent un peu la même chose...

    EDIT : c'est d'ailleurs bien pour ça que les problèmes liés au cache lors d'une requête AJAX n'interviennent qu'en GET.
    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

  10. #10
    Membre du Club
    Inscrit en
    Septembre 2010
    Messages
    128
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 128
    Points : 51
    Points
    51
    Par défaut
    Sans doute mais c'est votre lien que je cite http://www.developpez.net/forums/d12...t/#post7031604

    Par contre je n'ais pas saisie la partie "problèmes liés au cache"...j'ai dus louper un épisode .

  11. #11
    Invité
    Invité(e)
    Par défaut
    Ce que tu dois comprendre, c'est que la théorie, c'est bien, la pratique c'est... bien aussi !

    Il faut adapter "ce-que-tu-sais-en-théorie" à chaque "cas pratique".

    Donc : le meilleur moyen d'avoir des réponses "pratiques" est encore de "pratiquer" => faire des exercices/tests/essais...

    Citation Envoyé par tryan Voir le message
    Par contre je n'ais pas saisie la partie "problèmes liés au cache"...j'ai dus louper un épisode .
    Ceci explique cela.

  12. #12
    Membre du Club
    Inscrit en
    Septembre 2010
    Messages
    128
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 128
    Points : 51
    Points
    51
    Par défaut
    Bon, je vais continuer à tester à mon niveau alors.

    Merci de vos réponses.

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

Discussions similaires

  1. [AJAX] Comment lancer 2 fois send() dans la même page
    Par anaranjado dans le forum AJAX
    Réponses: 2
    Dernier message: 17/08/2009, 04h36
  2. [AJAX] Ajax et XmlHttpRequest.open
    Par tostaky8 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 16/02/2009, 23h03
  3. Pb Ajax et XmlHttpRequest.open()
    Par tostaky8 dans le forum ASP.NET
    Réponses: 0
    Dernier message: 16/02/2009, 09h41
  4. [AJAX] Recherche : Fonction open source pour l'encodage des accents ?
    Par polothentik dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 09/04/2008, 11h09
  5. Réponses: 5
    Dernier message: 21/11/2006, 22h58

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