Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > Flash/Flex > Flash
Flash Forum d'entraide sur la technologie Flash (Cours, FAQs, Sources)
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 22/10/2007, 16h06   #1
Membre régulier
 
Inscription : septembre 2006
Messages : 102
Détails du profil
Informations personnelles :
Âge : 60
Localisation : France

Informations forums :
Inscription : septembre 2006
Messages : 102
Points : 71
Points : 71
Envoyer un message via MSN à jpboogie Envoyer un message via Skype™ à jpboogie
Par défaut XLM or not XML

Bonjour à tous

Voilà je ne viens pas soumettre un problème (pour une fois...) mais plutôt demander votre avis en ce qui concerne l'intérêt d'utiliser ou non XML.

Actuellement pour tout besoin d'infomation venant d'un serveur, j'utilise un objet LoadVars qui execute un script PHP qui à son tour execute une requête MySQL et je récupère le résultat dans Flash via mon LoadVars.

Cela fonctionne très très bien à mon avis, mais j'entends (ou je lis) de plus souvent des commentaires sur ce sujet disant qu'il n'est pas conseillé de pratique comme ça, mais plutôt d'utiliser XML pour formatter les données.

J'avoue que je ne comprends pas du tout pourquoi. Je trouve qu'contraire que c'est deux fois plus de boulot pour en fin de compte obtenir le même résultat ....

Me trompe je ? Vos avis éclairés please
jpboogie est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/10/2007, 11h03   #2
Membre chevronné
 
Avatar de luta
 
Inscription : novembre 2003
Messages : 1 038
Détails du profil
Informations forums :
Inscription : novembre 2003
Messages : 1 038
Points : 691
Points : 691
Envoyer un message via MSN à luta
disons qu avec XML tu fais ce que tu veux...
personnelement j ai été confronté au soucis de l utilisation du LoadVars lorsque j ai du passer un tableau d objets à mon flash...pas facile sauf si on fait un split des virgules....et domage si une de tes chaines de caractères avait une virgule elle meme...
en fait le XML permet d avoir un document COMPREHENSIBLE et c est là son très grand intérêt...
maintenant ça se paie au niveau traffique réseau vu que c est plus lourd qu une simple chaîne de caractère avev ttes les variables concaténées... voila tout
luta est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/10/2007, 11h05   #3
Membre Expert
 
Avatar de dom_dev
 
Inscription : février 2006
Messages : 2 067
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 2 067
Points : 2 114
Points : 2 114
salut,

la bonne méthode pour développer quand on est tout seul c'est celle qu'on connaît et qui marche bien.

XML c'est incontournable quand un ensemble de données est structuré et qu'on travaille à plusieurs pour exploiter différemment cet ensemble de données.
Par exemple tu sais que dans le fichier il y a une liste de noms
Code :
1
2
3
4
5
6
7
 
...
   <NOMS>
      <NOM>toto</NOM>
      <NOM>tata</NOM>
   </NOMS>
...
Dans ce cas tu as l'outillage nécessaire (et suffisant) pour dire à ton programme flash, trouve moi le noeud "noms" et donne moi tous les "nom" de ce noeuds.
Comme en plus il y a des outils pour vérifier la conformité du fichier par rapport à une DTD ça donne un truc plutôt "solide". Ce fichier pourra être modifier par un tas de personnes différentes sans problème.

voilà un peu résumé...
__________________
Si la ou les réponses obtenues vous ont donné satisfaction n'oublier pas ->
Et ne rajoutez pas de nouvelles questions éternellement dans le même post surtout si vous en n'êtes pas l'auteur
MERCI
dom_dev est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/10/2007, 14h50   #4
Membre régulier
 
Inscription : septembre 2006
Messages : 102
Détails du profil
Informations personnelles :
Âge : 60
Localisation : France

Informations forums :
Inscription : septembre 2006
Messages : 102
Points : 71
Points : 71
Envoyer un message via MSN à jpboogie Envoyer un message via Skype™ à jpboogie
[quote=dom_dev;2608948]
XML c'est incontournable quand un ensemble de données est structuré et qu'on travaille à plusieurs pour exploiter différemment cet ensemble de données.
[/code]

D'accord avec toi, mais une base donnée (MySql ou autre) est aussi en ensemble structuré non ? Quand on travaille à plusieurs sur un projet, chacun connait (en principe) la structure des tables.

Ce que je voulais plutôt souligner, c'est l'effort supplémentaire nécessaire pour générer du XML. Quel est en fait l'avantage quand il faut du côté flash analyser le contenu d'un XML de même qu'il faut analyser un retour d'information au format text

Bon en même temps étant donné le nombre d'avis différent que j'ai pu récupérer sur le sujet jusqu'à présent, je pense qu'il faut que je réflechisse plus, car j'ai l'impresson de râter un truc important mais lequel
jpboogie est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/10/2007, 15h00   #5
Membre chevronné
 
Avatar de luta
 
Inscription : novembre 2003
Messages : 1 038
Détails du profil
Informations forums :
Inscription : novembre 2003
Messages : 1 038
Points : 691
Points : 691
Envoyer un message via MSN à luta
ce que tu viens de dire ne serait valable qu a partir du moment ou le client flash peut se connecter à une base sql sans passer par du php...or ce n est pas possible donc il te faut un support structuré intermédiaire et le XML est parfait pour ça
luta est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/10/2007, 15h01   #6
Membre chevronné
 
Avatar de luta
 
Inscription : novembre 2003
Messages : 1 038
Détails du profil
Informations forums :
Inscription : novembre 2003
Messages : 1 038
Points : 691
Points : 691
Envoyer un message via MSN à luta
Je rajouterais comme dom qu il y a de nombreux outils qui permettent d exploiter le XML dans tous les sens ceci allant de la validation du XML (schema XSD, DTD...) au parsing du document XML (DOM, XPATH) implémenté dans flash
luta est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/10/2007, 15h08   #7
Membre régulier
 
Inscription : septembre 2006
Messages : 102
Détails du profil
Informations personnelles :
Âge : 60
Localisation : France

Informations forums :
Inscription : septembre 2006
Messages : 102
Points : 71
Points : 71
Envoyer un message via MSN à jpboogie Envoyer un message via Skype™ à jpboogie
Citation:
Envoyé par luta Voir le message
ce que tu viens de dire ne serait valable qu a partir du moment ou le client flash peut se connecter à une base sql sans passer par du php...or ce n est pas possible donc il te faut un support structuré intermédiaire et le XML est parfait pour ça
Ben désolé (j'suis un boulet hein ) mais je ne vois toujours pa le problème. Quel inconvenient y a t'il a executer un script PHP via un LoadVars ? Je trouve au contraitre que c'est simplisime et hyper pratique. De tout façon quand on veux récupérer des données en provenance d'un SGBD, il faut bien qu'un script s'en charge, que soit php ou autre et qu'ensuite ce scripte fournisse les données en question au format XML. C'est pa magique XML qaund même ? si ? Alors ???

J'ai encore dis des conneries là ? (H)
jpboogie est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/10/2007, 15h17   #8
Membre chevronné
 
Avatar de luta
 
Inscription : novembre 2003
Messages : 1 038
Détails du profil
Informations forums :
Inscription : novembre 2003
Messages : 1 038
Points : 691
Points : 691
Envoyer un message via MSN à luta
je n ai pas dit que tu étais un boulet
si se sont simplement une somme de variables simples qu il te faut effectivmeent pas la peine de se prendre la tête à faire un document XML compliqué mais és que de la complexité vient à s imisser la dedans, je parle aussi bien en quantité qu 'en "classement" de données...il est bien plus pratique d utiliser du xml..
exemple concret...je souhaite charger une liste d utilisateurs, en xml ca donnerait ceci
Code :
1
2
3
4
5
6
7
8
9
10
<root>
  <user>
    <nom>yop</nom>
    <prenom>yip</nom>
  </user>
  <user>
    <nom>yop1</nom>
    <prenom>yip1</nom>
  </user>
</root>
une fois chargé dans flash tu peux parcourir aisément l arbre XML et construire des objets...essaie de me donner l implémentation nécessaire en utilisant loadVars.... et bien bon courage!!
En espérant que ce message ai été plus explicite (et j ai toujours pas dit que t'étais un boulet)
luta est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/10/2007, 15h27   #9
Membre régulier
 
Inscription : septembre 2006
Messages : 102
Détails du profil
Informations personnelles :
Âge : 60
Localisation : France

Informations forums :
Inscription : septembre 2006
Messages : 102
Points : 71
Points : 71
Envoyer un message via MSN à jpboogie Envoyer un message via Skype™ à jpboogie
Luta, voilà comment je fais avec un LodVars pour charger une liste (dans cet exemple, une liste cavaliers ayant participé à un concours Hippique à une date donnée)

Code AS :

Code :
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
 
 
.....
......
function loadDetails(concours:String):Void {
    // Chargement des enregistrements correspondant à la date du concours choisi
    var providerArray:Array = new Array();    
    var concoursData:LoadVars = new LoadVars();
    concoursData.onLoad = function(ok1:Boolean):Void {
        if(ok1)
            {
            if(this.error != undefined)
                {
                status_line.text = this.error;                
                }
            else
               {            
                  // Récupération des valeurs dans des tableaux
                var i:Number;            
                var argComp:String = this["epreuve" + 0];
 
                for(i = 0; i < this.total; i++)
                   {                    
                    array_cavalier[i] = this["cavalier" + i];
                    array_cheval[i] = this["cheval" + i];
                    array_epreuve[i] = this["epreuve" + i];
                    array_fautes[i] = this["fautes" + i];                
                    array_classement[i] = this["classement" + i];                                                              
                    if(array_epreuve[i] != argComp)
                       {
                        argComp = array_epreuve[i];
                          providerArray.push({Cavalier:"-----", Cheval:"-----", Epreuve:"-----", Fautes:"-----", Classement:"-----"});                                        
                       }
                    //providerArray.push({Cavalier:array_cavalier[i], Cheval:array_cheval[i], Epreuve:array_epreuve[i], Fautes:array_fautes[i], Classement:array_classement[i]});                
                    providerArray.addItem({Cavalier:array_cavalier[i], Cheval:array_cheval[i], Epreuve:array_epreuve[i], Fautes:array_fautes[i], Classement:array_classement[i]});                
                    }
 
                showData(providerArray);                        
                }
    }
         else 
                {
            status_line.text = "Erreur de transmission des données !!!";
            }
    }
    concoursData.concours = concours;
    concoursData.sendAndLoad("http://....../show_cso_resultats.php",concoursData,"GET");
}

Code PHP :

Code :
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
 
$DB = new DB;
 
$concours = $_GET['concours'];
list($lieu, $datef) = explode(' le ',$concours);
list($jour, $mois, $annee) = explode('/', $datef);
$datec = $annee . '-' . $mois . '-' . $jour;
 
$requete = "SELECT * FROM cso WHERE lieu='" . utf8_encode($lieu) . "' AND datec='" . $datec . "' ORDER by epreuve,classement";
 
$id = $DB->query($requete);
 
$row = 0;
while (mysql_fetch_row($id))
   {
   $cavalier = mysql_result($id, $row, 0);
   $cheval = mysql_result($id, $row, 1);
   $epreuve = mysql_result($id, $row, 4);
   $fautes = mysql_result($id, $row, 5);
   $classement = mysql_result($id, $row, 6);
 
   $resultat .= '&cavalier' . $row . '=' .utf8_encode($cavalier);
   $resultat .= '&cheval' . $row . '=' . utf8_encode($cheval);
   $resultat .= '&epreuve' . $row . '=' . $epreuve;
   $resultat .= '&fautes' . $row . '=' . $fautes;
   $resultat .= '&classement' . $row . '=' . $classement;
   $row++;
   }
 
$resultat .= '&total=' . $row . '&';
echo $resultat;
 
$DB->close();
Voilà, je ne prétends pas que ce soit LA solution, mais bon je trouve que ceal à le mérite d'être asse simple et efficace.
jpboogie est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/10/2007, 15h54   #10
Membre chevronné
 
Avatar de luta
 
Inscription : novembre 2003
Messages : 1 038
Détails du profil
Informations forums :
Inscription : novembre 2003
Messages : 1 038
Points : 691
Points : 691
Envoyer un message via MSN à luta
ok, personnelement j utilise les 2 méthodes mais pour cet exemple j utiliserait le XML, pourquoi?
imaginons maintenant que pour ta liste de cavaliers tu souhaites charger la liste des compets remportés par celui ci...
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<root>
  <user>
    <nom>yop</nom>
    <prenom>yip</nom>
    <compets>
      <compet>macompet</compet>
      <compet>macompet2</compet>
    <compets>
  </user>
  <user>
    <nom>yop1</nom>
    <prenom>yip1</nom>
  </user>
</root>
tu pourras certainement te débrouiller pour traffiquer le code as2 afin d y récupérer le sous tableau mais en XML se sera l affaire d a peut près 10 secondes de modification et surtout c est beaucoup plus "verbeux" donc plus compréhensible mais plus lourd.
Maintenant utiliser loadVars n est pas une mauvaise chose, je le fais moi même mais ca dépend pourquoi...
voila mon point de vue
luta est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/10/2007, 16h22   #11
Membre régulier
 
Inscription : septembre 2006
Messages : 102
Détails du profil
Informations personnelles :
Âge : 60
Localisation : France

Informations forums :
Inscription : septembre 2006
Messages : 102
Points : 71
Points : 71
Envoyer un message via MSN à jpboogie Envoyer un message via Skype™ à jpboogie
Ok Je vois ce que tu veux dire. Dans certains cas l'utilisation d'XML peut effectivement apporter un plus (toutes les infos en une seule fois au même endroit.)

Par contre, autre chose que je n'avais pas mentionnée : bonjour la lourdeur en ce qui concerne l'analyse des donneés dans AS(fisrChild, Chlinodes, etc ...., pfffff )

E tout cas, merci pour tes commentaires (et ta patience
JP (H)
jpboogie est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 06h55.


 
 
 
 
Partenaires

Hébergement Web