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

XSL/XSLT/XPATH XML Discussion :

[XSLT] Transformation côté client ou côté serveur ?


Sujet :

XSL/XSLT/XPATH XML

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre émérite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2006
    Messages
    857
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2006
    Messages : 857
    Par défaut [XSLT] Transformation côté client ou côté serveur ?
    Bonjour à tous,

    J'en suis au prémice du XML mais j'aimerais avoir vos avis éclairés sur mes besoins.
    Depuis un fichier XML (généré côté serveur en Java) résultant d'une recherche, j'aimerais mettre en forme ce résultat. C'est là que j'entends parler du XSL et des transformations XSLT. En fouillant un peu sur ce forum, je vois que l'on peut faire cette transformation là depuis le client ou depuis le serveur. Surtout n'hésitez à m'interrompre si j'ai tout faux.

    Côté Client
    Mon XML et mon XSL sont générés sur le serveur.
    Et là par JavaScript et ActiveX, j'effectue ma transformation XSLT et obtient du code HTML.
    Et je peux gérer les tris, le multi page, en passant des paramètres à mon XSL.

    Avantages :
    - Non rechargement de la page
    - Aucune autre interrogation de la base pour la génération du XSL

    Inconvénients :
    - Stockage physique d'un fichier XSL sur le serveur.
    - ActiveX : Non compatible selon les navigateurs.
    - lourdeur : Si XML important, temps de transformation ?

    Côté Serveur
    Mon XML et mon XSL sont générés sur le serveur. J'opère également ma transformation XSLT (via JAXP) sur le serveur, qui retourne au poste client du HTML.
    Là par contre pour la gestion des tris, du multipage je suis obligé de refaire appel au serveur et de recharger le client.

    Avantage :
    - Peu importe le navigateur du client

    Inconvénient :
    - Rechargement de la page
    - Ré-interrogation de la base.


    Tout ça n'est peut être pas très clair... Mais j'aimerais savoir si d'une part j'ai bien tout saisie et d'autre part quelle serait la meilleure solution pour vous ?

    Merci d'avance.

  2. #2
    Rédacteur

    Avatar de Erwy
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2003
    Messages
    4 967
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2003
    Messages : 4 967
    Par défaut
    Coté client je ne connais que deux navigateur qui font correctement le boulot:
    IE et FIREFOX le pb étant qu'ils n'ont pas tout le temps la même syntaxe (il existe un script sarissa pour ça mais je ne l'ai jamais utilisé)et "petit bonus" que bcp oublie qu'ils n'ont pas toujours le même ordre de parsage.
    Ainsi, si mes souvenirs sont bon, msxml parse l'axe des ascendant dans le sens contraire de celui de la norme ce qui impose quelques "trucs" pour obtnir le même fonctionnement dans les deux.

    Coté serveur : tu élimine ce type de pb mais tu te passes par exemple des tris et filtre coté client .

    Personellement , etant sur un intranet ou je n'ai qu'a m'ocuper d'un seul type de navigatueur je le fais sur plusieurs niveau

    -je recupere un xml de ma base via des procedures stockés
    - je modifie, joint, elimine les doublons sur les serveurs
    - quand j'ai besoin de fonctionnalité de tri/filtre sur mes ecrans je met le xml coté client autrement je fais la transformation coté serveur

  3. #3
    Expert confirmé
    Avatar de GrandFather
    Inscrit en
    Mai 2004
    Messages
    4 587
    Détails du profil
    Informations personnelles :
    Âge : 55

    Informations forums :
    Inscription : Mai 2004
    Messages : 4 587
    Par défaut
    Il y a un autre élément qui plaide en faveur des solutions serveur, c'est la possibilité de mettre en cache sources XML et feuilles de style XSL, voire de compiler ces dernières (avec XSLTC pour une plateforme Java) ce qui n'est pas possible côté client.

    Au fait, quand tu dis que le XSL est généré par le serveur, c'est rarement le cas, on travaille plutôt avec des feuilles de style XSL statiques écrites « à la main ». Les cas où il est nécessaire de générer dynamiquement du code XSLT sont plutôt rares (et souvent complexes).
    FAQ XML
    ------------
    « Le moyen le plus sûr de cacher aux autres les limites de son savoir est de ne jamais les dépasser »
    Giacomo Leopardi

  4. #4
    Membre émérite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2006
    Messages
    857
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2006
    Messages : 857
    Par défaut
    Justement si, pour ma part le XSL sera généré par le serveur; puisque je ne sais pas ce que j'aurais dans mon fichier XML.

    J'explique mes besoins.
    En fait un utilisateur effectue une recherche, il défini des attributs, des critères, et mon moteur (Java) me retourne ce résultat dans un fichier XML. Mon besoin est donc de mettre en forme ce fichier XML.
    Je pensais qu'en générant un fichier XSL cela me permettrait de gérer facilement les besoins du style (Rupture, Tri, Filtre, Multi Pages, Calcul,...); ces procédures s'effectuant côté client.

    Maintenant je me pose la question : Quel intérêt de générer du XSL, puis appliquer une transformation pour obtenir du HTML côté serveur ?
    Autant générer du HTML directement...

  5. #5
    Expert confirmé
    Avatar de GrandFather
    Inscrit en
    Mai 2004
    Messages
    4 587
    Détails du profil
    Informations personnelles :
    Âge : 55

    Informations forums :
    Inscription : Mai 2004
    Messages : 4 587
    Par défaut
    Citation Envoyé par SONY30
    Je pensais qu'en générant un fichier XSL cela me permettrait de gérer facilement les besoins du style (Rupture, Tri, Filtre, Multi Pages, Calcul,...); ces procédures s'effectuant côté client.
    Il n'est pas absolument pas nécessaire de générer du XSLT pour faire cela ; pour donner un comportement dynamique à une feuille de style XSL statique, il suffit de lui passer les paramètres - avec <xsl:param> - qui définissent ce comportement.
    FAQ XML
    ------------
    « Le moyen le plus sûr de cacher aux autres les limites de son savoir est de ne jamais les dépasser »
    Giacomo Leopardi

  6. #6
    Membre émérite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2006
    Messages
    857
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2006
    Messages : 857
    Par défaut
    Citation Envoyé par GrandFather
    Il n'est pas absolument pas nécessaire de générer du XSLT pour faire cela ; pour donner un comportement dynamique à une feuille de style XSL statique, il suffit de lui passer les paramètres - avec <xsl:param> - qui définissent ce comportement.

    Je suis d'accord avec vous.
    Mais là je reviens aux inconvénients de la transformation côté client, à savoir :
    - ActiveX : Gestion différente selon les navigateurs.
    - Lourdeur : Si XML important, temps de transformation.

  7. #7
    Rédacteur

    Avatar de Erwy
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2003
    Messages
    4 967
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2003
    Messages : 4 967
    Par défaut
    Citation Envoyé par SONY30

    Maintenant je me pose la question : Quel intérêt de générer du XSL, puis appliquer une transformation pour obtenir du HTML côté serveur ?
    Autant générer du HTML directement...
    Justement à cause du passage de paramètre coté client.
    On peut grace à cela réafficher des données tries ou filtrer sans avoir besoin de rappeler le serveur et d'y stocker le xml ou de rappeller la base

    voir ici pour un exemple de passage de paramètre:
    http://www.developpez.net/forums/sho...93&postcount=3

    Mais je ne le conseille que si on maitrise le client utilise (ce qui est mon cas).C'est alors d'un grand confort

Discussions similaires

  1. [XSLT] Transformation côté client : références
    Par romainw dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 23/08/2007, 13h05
  2. [XSLT]Transformer une partie d'un document
    Par Floyd dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 02/10/2005, 14h03
  3. [XML][XSLT] transformer le xml en binaire via une xslt
    Par chama dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 25/07/2005, 11h42
  4. [XSLT] transformation XHTML->XML
    Par yos dans le forum XSL/XSLT/XPATH
    Réponses: 11
    Dernier message: 23/05/2005, 13h15
  5. [XSLT] transformation XML->XML en php
    Par amellouki dans le forum XSL/XSLT/XPATH
    Réponses: 5
    Dernier message: 03/03/2005, 12h32

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