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

Affichage des résultats du sondage: Quel format d'échange utilisez-vous avec AJAX

Votants
10. Vous ne pouvez pas participer à ce sondage.
  • XML

    2 20,00%
  • JSON

    6 60,00%
  • Autre (préciser)

    2 20,00%
JavaScript Discussion :

[AJAX] Quel format d'échange utilisez-vous avec AJAX ?


Sujet :

JavaScript

  1. #1
    Rédacteur

    Avatar de khayyam90
    Homme Profil pro
    Architecte de système d’information
    Inscrit en
    Janvier 2004
    Messages
    10 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Architecte de système d’information

    Informations forums :
    Inscription : Janvier 2004
    Messages : 10 369
    Points : 40 164
    Points
    40 164
    Par défaut [AJAX] Quel format d'échange utilisez-vous avec AJAX ?
    Bien que le X de AJAX signifie XML, rien ne vous oblige à l'utiliser que XML. N'importe quel format de sérialisation texte permet de faire transiter des données via un appel JavaScript asynchrone.

    Êtes-vous restés fidèles à XML ou bien avez-vous opté pour autre chose ? Et quoi ?

  2. #2
    Membre expérimenté 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
    Points : 1 388
    Points
    1 388
    Par défaut
    Au début j'utilisais exclusivement XML (quand je codais en java), mais je suis passé à JSON car c'est vrai que c'est plus rapide à écrire et que ca convient bien à l'usage que j'en fait (principalement de la sérialisation d'objets php).

    Maintenant, XML reste toutefois bien utile lorsque la réponse à retourner au client est complexe et qu'on veut accéder seulement à certains éléments (via XPath par exemple).

  3. #3
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Du JSON-Like
    (choix "Autre", donc)

    Vu que j'ai commencé avant de connaitre l'existence de JSON, c'est de la sérialisation perso (généré via ASP) ...
    Pour tout savoir sur l'utilisation du forum

    En postant votre message, n'oubliez pas les Règles du Club.

  4. #4
    Rédacteur

    Avatar de khayyam90
    Homme Profil pro
    Architecte de système d’information
    Inscrit en
    Janvier 2004
    Messages
    10 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Architecte de système d’information

    Informations forums :
    Inscription : Janvier 2004
    Messages : 10 369
    Points : 40 164
    Points
    40 164
    Par défaut
    Citation Envoyé par E.Bzz Voir le message
    Du JSON-Like
    (choix "Autre", donc)

    Vu que j'ai commencé avant de connaitre l'existence de JSON, c'est de la sérialisation perso (généré via ASP) ...
    Et donc tu ne bénéficies pas du support natif du JSON par JavaScript, tu es obligé d' "interprêter" ta chaine de caractères côté JavaScript

  5. #5
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Citation Envoyé par khayyam90 Voir le message
    Et donc tu ne bénéficies pas du support natif du JSON par JavaScript, tu es obligé d' "interprêter" ta chaine de caractères côté JavaScript
    Voilà ...
    Pour tout savoir sur l'utilisation du forum

    En postant votre message, n'oubliez pas les Règles du Club.

  6. #6
    Rédacteur

    Avatar de khayyam90
    Homme Profil pro
    Architecte de système d’information
    Inscrit en
    Janvier 2004
    Messages
    10 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Architecte de système d’information

    Informations forums :
    Inscription : Janvier 2004
    Messages : 10 369
    Points : 40 164
    Points
    40 164
    Par défaut
    Et si c'était à refaire, conserverais-tu ta sérialisation perso ?

  7. #7
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Citation Envoyé par khayyam90 Voir le message
    Et si c'était à refaire, conserverais-tu ta sérialisation perso ?
    "C'est refait" à chaque nouveau projet, et je ne suis toujours pas passé à JSON.
    Ca viendra sûrement, mais pas de véritable besoin (ie : pas de cas ingérable autrement ou problème de perf) pour l'instant ...
    Pour tout savoir sur l'utilisation du forum

    En postant votre message, n'oubliez pas les Règles du Club.

  8. #8
    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 416
    Points
    91 416
    Billets dans le blog
    20
    Par défaut
    Tout pareil que E.Bzz.
    Même si je me rends bien compte de l'intérêt de JSON, je préfère formater moi-même mes réponses pour pouvoir construire mes objets (typiquement, mes fragments HTML) directement.
    Une des raisons principales étant de m'abstenir d'utiliser des fonctions dérivant de eval.
    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

  9. #9
    Rédacteur

    Avatar de khayyam90
    Homme Profil pro
    Architecte de système d’information
    Inscrit en
    Janvier 2004
    Messages
    10 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Architecte de système d’information

    Informations forums :
    Inscription : Janvier 2004
    Messages : 10 369
    Points : 40 164
    Points
    40 164
    Par défaut
    Citation Envoyé par Bovino Voir le message
    Une des raisons principales étant de m'abstenir d'utiliser des fonctions dérivant de eval.
    Voilà qui est intéressant. Que reproches-tu aux fonctions dérivant de eval ?

  10. #10
    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 416
    Points
    91 416
    Billets dans le blog
    20
    Par défaut
    Elles sont réputées être peu performantes (du fait d'obliger de passer par une phase de compilation) et peu sures (ce n'est peut-être qu'une coïncidence, mais il se trouve que plusieurs discussions ont été ouvertes dernièrement concernant des sites hackés et il apparait qu'à chaque fois, le code malveillant utilise eval...)

    Maintenant, j'avoue ne pas être suffisamment spécialiste du fonctionnement interne de JavaScript pour avoir un avis définitif sur la question.
    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

  11. #11
    Rédacteur

    Avatar de khayyam90
    Homme Profil pro
    Architecte de système d’information
    Inscrit en
    Janvier 2004
    Messages
    10 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Architecte de système d’information

    Informations forums :
    Inscription : Janvier 2004
    Messages : 10 369
    Points : 40 164
    Points
    40 164
    Par défaut
    La lenteur de eval vient du fait que c'est une interprétation qu'il faut faire à la volée. Mais bon, que tu utilises un flux JSON, XML ou perso, tu devras dans tous les cas interpréter ce flux pour en tirer les infos qui t'intéressent. Dans tous les cas quelqu'un doit s'y coller, toi ou l'interpréteur javascript.

    L'histoire de la sécurité de ces fonctions c'est autre chose et si quelqu'un a des infos à ce sujet, ça serait très intéressant de les partager

  12. #12
    Membre émérite Avatar de franculo_caoulene
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 880
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 880
    Points : 2 953
    Points
    2 953
    Par défaut
    J'utilise JSON, j'adore la facilité d'écriture et de lecture.
    Je programme en asp.net dans lequel on peut sérialiser un objet typé en JSON. Un service web créé ainsi retourne un contenu du type "application/json; charset=utf-8" Je n'ai donc pas d'eval() à faire pour utiliser l'objet.
    Les Cours et tutoriels JavaScript
    Penser à la recherche et au bouton

  13. #13
    Rédacteur

    Avatar de khayyam90
    Homme Profil pro
    Architecte de système d’information
    Inscrit en
    Janvier 2004
    Messages
    10 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Architecte de système d’information

    Informations forums :
    Inscription : Janvier 2004
    Messages : 10 369
    Points : 40 164
    Points
    40 164
    Par défaut
    Citation Envoyé par franculo_caoulene Voir le message
    Un service web créé ainsi retourne un contenu du type "application/json; charset=utf-8" Je n'ai donc pas d'eval() à faire pour utiliser l'objet.
    pas d'eval à faire ? tu peux préciser ? comment fais-tu côté client pour récupérer ton objet ?

  14. #14
    Membre émérite Avatar de franculo_caoulene
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 880
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 880
    Points : 2 953
    Points
    2 953
    Par défaut
    Et non c'était trop beau. D'après mes tests, .net doit faire un eval dans mon dos quelque part.

    Mais bon c'est quand même assez bien fait.
    Les Cours et tutoriels JavaScript
    Penser à la recherche et au bouton

  15. #15
    Rédacteur
    Avatar de marcha
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2003
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 571
    Points : 2 351
    Points
    2 351
    Par défaut
    Bonjour,

    Pour ma part je suis passé d'une sérialisation perso à JSON depuis quelques
    temps déjà. Voici mon avis sur les divers points discutés plus haut.

    Fragment HTML et JSON:

    Cela ne pause aucun problème, J'utilise souvent des réponse du type:
    rep = { type: ..., data: ... }

    type=0 signfie que data est un message d'alert à afficher avec alert(data);
    type=1 signifie que data est un fragment HTML que je peux exploiter.

    C'est assez pratique pour gérer les erreurs

    Utilisation d'eval

    Il est clair qu'on ne coupe pas à une forme d'évaluation coté client. Soit
    par l'utilisation de la fonction eval, soit par l'insertion d'un script dans le
    dom. (C'est cette deuxième approche qui est utilisée par JQuery).

    Quant au risques, si l'on maitrise le coté client comme le coté serveur je
    n'en vois pas. Sinon une regexp permet d'assurer que le contenu retourné
    correspond à nos attentes avant l'évaluation.

    Quant à la performance, je n'ai jamais rencontré de problème de ce coté
    là, il me semble que le temps d'évaluation est totalement négligeable en
    comparaison du temps de chargement, mais je suis à l'écoute si vous avez
    des cas où cela poserait problème.

    XML vs JSON

    Comme la souligné DoubleU, XPATH est un avantage important pour opter
    pour du XML, de même que le "clonage" de noeuds, vu la structure DOM.

    Mais si c'est pour n'extraire qu'une partie de la réponse, je serai plus d'avis
    de faire le filtrage coté serveur et ne renvoyer que le strict nécessaire.
    (ok c'est pas forcement applicable dans tous les cas)

    Un bon point pour JSON, c'est d'avoir la possibilité d'utiliser for(key in obj)
    qui est vraiment pratique en comparaison avec ce que propose le DOM pour
    traiter le XML.

    En conclusion

    Je crois pas qu'on puisse dire qu'une technique est
    meilleure qu'une autre de manière absolue. Toutes ont leur raison d'être
    ( c'est beau je fais de la philosophie maintenant )

    Avoir connaissance de toutes les techniques pour choisir la bonne au bon
    moment me semble plus sage que de se limiter à utiliser celle qu'on
    connait. (Faites ce que je dis, pas ce que je fais )
    Si ton code fait plus d'une ligne, c'est que tu as mal choisi ton langage !

  16. #16
    Rédacteur

    Avatar de khayyam90
    Homme Profil pro
    Architecte de système d’information
    Inscrit en
    Janvier 2004
    Messages
    10 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Architecte de système d’information

    Informations forums :
    Inscription : Janvier 2004
    Messages : 10 369
    Points : 40 164
    Points
    40 164
    Par défaut
    Citation Envoyé par franculo_caoulene Voir le message
    D'après mes tests, .net doit faire un eval dans mon dos quelque part.
    la partie cliente de asp.net ajax utilise une méthode Sys.Serialization.JavaScriptSerializer.deserialize contenant un appel à eval.

    Comme quoi la sérialisation / désérialisation côté client est l'un des pilliers des appels AJAX. Car de la même manière, on peut poster une chaine JSON décrivant les paramètres GET / POST. On envoie un objet et on récupère aussi un objet.

  17. #17
    Membre émérite
    Avatar de supersnail
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 719
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 719
    Points : 2 793
    Points
    2 793
    Par défaut
    JSON pour moi..
    (je sais pas pourquoi,mais IE gérait très mal le XML.. (c'est peut-être du à l'émulation par wine vu que je suis sous nunux ))
    Toute question technique envoyée en MP ira directement à la poubelle

    Un code ne marchera jamais, il n'a jamais reçu la capacité de se déplacer.
    Inutile donc de dire "ça marche pas", donnez plutôt des informations précises afin de mieux pouvoir vous aider.


    Grand gourou de la -attitude

Discussions similaires

  1. [Généralités] Quel SGBD utilisez-vous avec WinDev ?
    Par Emmanuel Lecoester dans le forum WinDev
    Réponses: 75
    Dernier message: 13/08/2022, 17h59
  2. Réponses: 7
    Dernier message: 12/04/2010, 23h52
  3. Quels plugins utilisez-vous avec 4D ?
    Par Steph4D dans le forum 4D
    Réponses: 3
    Dernier message: 05/10/2007, 11h52
  4. [Zope] Quel CMS utilisez vous avec Zope ?
    Par Guigui_ dans le forum Zope
    Réponses: 9
    Dernier message: 26/04/2007, 19h07

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