Get Started. It's Free
or sign up with your email address
Rocket clouds
CC Ajax 2000 by Mind Map: CC Ajax 2000

1. EureciaPageletAction

2. Objectifs

2.1. Maintenabilité

2.1.1. Répondre aux requêtes Ajax dans les actions Struts

2.1.2. Utiliser JSP pour construire HTML dans réponse Ajax

2.1.3. Utiliser gestionnaire de paquets Javascript

2.1.4. Gérer les différents états d'une page par MVC

2.2. Expérience utilisateur

2.2.1. + rapide

2.2.1.1. Éviter la génération d'un DOM entier à chaque requête

2.2.1.2. Éviter récupération données que le client a déjà

2.2.1.3. Javascript chargé au besoin

2.2.2. + fluide

2.2.2.1. Minimiser les rafraichissements de la page

3. Pagelet

3.1. Morceau de page récupéré par Ajax et intégré dans page existante

3.2. Protocole "maison"

3.2.1. <pagelet> <model/> <styles/> <contents/> <scripts/> </pagelet>

3.3. Certaines pages existantes peuvent renvoyées comme pagelet

3.3.1. ?_pagelet=true

4. FWAction

4.1. doGetPagelet

4.1.1. sortie = pagelet XML

4.2. doPostPagelet

4.2.1. sortie = JSON

4.2.2. peut utiliser un form

4.3. Fonctions JSON

4.3.1. MyAction.<HTTP_METHOD>_<function>(params)

4.3.2. ex.: ExpenseAction.POST_expense(int amount, String type)

4.4. sequence

5. Gestion dépendances javascript

5.1. bower install jquery --save bower update bower uninstall foo

5.2. Nouvelle structure dossier statique (fw/)

5.2.1. bower_components/

5.2.1.1. géré par Bower

5.2.1.2. on met sur Git les fichiers requis par l'appli uniquement (Bower non nécessaire sur chaque poste)

5.2.2. eurecia/

5.2.2.1. jscript

5.2.2.1.1. nos scripts maison

5.2.3. external/

5.2.3.1. les scripts externes trop vieux pour être gérés par Bower

6. JsViews

6.1. MVC

6.1.1. Modèle = un objet JS

6.1.1.1. { user:{ firstname:"John", lastname:"Bergson" }, meaningOfLife: 42 ... }

6.1.2. Vue = instance d'un "template" HTML

6.1.2.1. {^{if meaningOfLife !== undefined}} <span data-link="user.firstname"/> <span data-link="uppercase:user.lastname"/> {{/if}}

6.1.3. Controller = géré par JsViews

6.1.3.1. Met à jour la vue quand le modèle change et inversement

6.2. exemple

6.2.1. intégration standard

6.2.2. intégration CC

7. Mise en oeuvre

7.1. Password dialog

7.1.1. déploiement fichiers

7.1.2. init

7.1.3. Requêtes HTTP

7.2. Planning dans demande absence

7.2.1. PlanningVacationAction

7.2.1.1. doGetPagelet pareil que doExecute

7.2.2. planning.jsp

7.2.3. CC.pagelet.load remplace getExternalAjaxContentForm

8. ajax.js

8.1. CC.pagelet.load("#myPageletContainer", "mypagelet.do")