Les formats de données

Parent Previous Next



Les formats de données



Présentation

L'AJAX est donc un ensemble de technologies visant à effectuer des transferts de données. Dans ce cas, il faut savoir structurer nos données. Il existe de nombreux formats pour transférer des données, nous allons voir ici les quatre principaux :


Utilisation

Les formats classiques


Lorsque nous parlons de « format classique », nous voulons désigner les deux premiers qui viennent d'être présentés : le texte et le HTML. Ces deux formats n'ont rien de bien particulier, vous récupérez leur contenu et vous l'affichez là où il faut, ils ne nécessitent aucun traitement. Par exemple, si vous recevez le texte suivant :

Je suis une alerte à afficher sur l'écran de l'utilisateur.


Que voulez-vous faire de plus, à part afficher cela à l'endroit approprié ? Cela va de même pour le HTML :

<p>Je suis un paragraphe <strong>inintéressant</strong> qui doit être copié quelque part dans le DOM.</p>


Que peut-on faire, à part copier ce code HTML là où il devrait être ? Le texte étant déjà formaté sous sa forme finale, il n'y a aucun traitement à effectuer, il est prêt à l'emploi en quelque sorte.


Le XML


Le format XML est déjà autrement plus intéressant pour nous, il permet de structurer des données de la même manière qu'en HTML, mais avec des balises personnalisées. Si vous ne savez absolument pas ce qu'est le XML, il est conseillé de jeter un coup d’œil au cours du


Site du Zéro « Le point sur XML » par Tanguiavant de continuer.


Le XML vous permet de structurer un document comme bon vous semble, tout comme en HTML, mais avec des noms de balise personnalisés. Il est donc possible de réduire drastiquement le poids d'un transfert simplement grâce à l'utilisation de noms de balise plutôt courts.


Par exemple, nous avons ici la représentation d'un tableau grâce au XML :

<?xml version="1.0" encoding="utf-8"?>

<table>

 

  <line>

    <cel>Ligne 1 - Colonne 1</cel>

    <cel>Ligne 1 - Colonne 2</cel>

    <cel>Ligne 1 - Colonne 3</cel>

  </line>

 

  <line>

    <cel>Ligne 2 - Colonne 1</cel>

    <cel>Ligne 2 - Colonne 2</cel>

    <cel>Ligne 2 - Colonne 3</cel>

  </line>

 

  <line>

    <cel>Ligne 3 - Colonne 1</cel>

    <cel>Ligne 3 - Colonne 2</cel>

    <cel>Ligne 3 - Colonne 3</cel>

  </line>

 

</table>


Là où l'utilisation du XML est intéressante, c'est que, en utilisant la requête appropriée, vous pouvez parcourir ce code XML avec les mêmes méthodes que vous utilisez pour le DOM HTML, comme getElementsByTagName() par exemple !


Comment ça se fait ? Eh bien, suite à votre requête, votre code Javascript va recevoir une chaîne de caractères contenant un code comme celui de ce tableau. À ce stade-là, il n'est pas encore possible de parcourir ce code, car il ne s'agit que d'une chaîne de caractères.


Cependant, une fois la requête terminée et toutes les données reçues, un parseur (ou analyseur syntaxique) va se mettre en route pour analyser le code reçu, le décomposer, et enfin le reconstituer sous forme d'arbre DOM qu'il sera possible de parcourir.


Ainsi, nous pouvons très bien compter le nombre de cellules (les balises <cel>) qui existent et voir leur contenu grâce aux méthodes que nous sommes habitués à utiliser avec le DOM HTML. Nous verrons cela dans le chapitre suivant.


Le JSON


Le JSON est le format le plus utilisé et le plus pratique pour nous. Comme l'indique son nom (JavaScript Object Notation), il s'agit d'une représentation des données sous forme d'objet Javascript. Essayons, par exemple, de représenter une liste de membres ainsi que leurs informations :

{

 

  Membre1: {

    posts: 6230,

    inscription: '22/08/2003'

  },

 

  Membre2: {

    posts: 200,

    inscription: '04/06/2011'

  }

 

}


Cela ne vous dit rien ? Il s'agit pourtant d'un objet classique, comme ceux auxquels vous êtes habitués ! Tout comme avec le XML, vous recevez ce code sous forme de chaîne de caractères ; cependant, le parseur ne se déclenche pas automatiquement pour ce format. Il faut utiliser l'objet nommé JSON, qui possède deux méthodes bien pratiques :


Voici un exemple d'utilisation de ces deux méthodes :

var obj = { index: 'contenu' },

    string;

 

string = JSON.stringify(obj);

 

alert(typeof string + ' : ' + string); // Affiche : « string : {"index":"contenu"} »

 

obj = JSON.parse(string);

 

alert(typeof obj + ' : ' + obj); // Affiche : « object : [object Object] »


Le JSON est très pratique pour recevoir des données, mais aussi pour en envoyer, surtout depuis que le PHP 5.2 permet le support des fonctions json_decode() et json_encode().


Le JSON n'est malheureusement pas supporté par Internet Explorer 7 et antérieurs, il vous faudra donc utiliser un polyfill, comme celui proposé par Douglas Crockford.


En résumé



Créé avec HelpNDoc Personal Edition: Créer des livres électroniques facilement

Site à deux balles