• [^] # Re: Javascript, everyday ...

    Posté par (site web personnel) . En réponse au journal 'UnJSq' v0.1.0. Évalué à 3.

    Je vais m'appuyer sur un exemple concret, à savoir http://vuejs.org/v2/guide/#Handling-User-Input.

    Avec UnJSq, pour avoir l'équivalent, on va créer un fichier XSL, appelons-le Main.xsl, avec le contenu suivant :

    <?xml version="1.0" encoding="UTF-8"?>
    <xsl:stylesheet version="1.0" 
     xmlns="http://www.w3.org/1999/xhtml" 
     xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
     <xsl:output method="html" encoding="UTF-8"/>
     <xsl:template match="/">
     <div>
     <input type="textbox" id="Message" value="Hello UnJSq!"/>
     <button data-xdh-onevent="Reverse">Reverse Message</button>
     </div>
     </xsl:template>
    </xsl:stylesheet>

    On va ensuite créer un fichier Javascript, appelons-le main.js, avec le contenu suivant :

    const unjsq = require('unjsq');
    function newSession() {
     return new unjsq.DOM();
    }
    function acConnect(dom, id) {
     dom.setLayout("", new unjsq.Tree(), "Main.xsl");
    }
    function acReverse(dom, id) {
     dom.getContent("Message",
     (result) => dom.setContent("Message", result.split('').reverse().join(''))
     );
    }
    function main() {
     unjsq.register([
     ["Connect", acConnect], // À l'action 'Connect' on va affecter la fonction 'acConnect(...)'.
     ["Reverse", acReverse], // À l'action 'Reverse' on va affecter la fonction 'acReverse(...)'.
     ]);
     /* Ici, on lance le serveur, en déclarant 'NewSession'
     comme la fonction à lancer à chaque nouvelle session,
     'reverse', le répertoire dans lequel sont stockés
     tous les fichiers relatifs à cette 'application',
     et 'Connect', l'action à lancer suite à la connexion
     de l'utilisateur (qui va afficher la première page). */
     unjsq.launch(newSession, "reverse", "Connect");
    }
    main();

    On place ces deux fichiers dans un répertoire nommé reverse, on lance le tout avec node reverse/main.js, après avoir installé UnJSq, et on observe le résultat en ouvrant un navigateur web à l'adresse http://localhost:8080/.

    La grosse différence, c'est que le code Javascript qui va effectuer l'action associée au bouton est, non pas exécuté par le navigateur comme c'est le cas avec Vue.js, mais par node. Bon, pour un truc aussi simple, on aura aussi vite fait de mettre un onclick="..." sur le bouton (ça vaut aussi pour Vue.js), mais, l'avantage avec UnJSq, c'est que le développeur node n'est pas obligé de jongler entre node pour le backend, et un de ces framework Javascript pour le frontend : il peut tout faire avec node.

    Zelbinium: pour la génération qui crée, pas celle qui scrolle...