CSI 3540 - Laboratoire 8

* Objectifs

  - Introduction à Ajax

Note: Utilisez Firefox, Chrome, Safari ou tout autre navigateur qui
implémente le DOM de niveau 2.

1.  Complétez l'exercice 4 du laboratoire 7:

    « Adaptez l'exemple du menu déroulant du chapitre 5 du livre du
    cours afin de le transformer en menu pour la sélection de valeurs
    associées à un champ de type texte d'un formulaire. »

    Screen Capture

    Modifier cet exemple afin que les valeurs soient obtenues
    dynamiquement du serveur à l'aide de Ajax.

    Voici l'exemple du chapitre 5: DropDownMenu.html, DropDownMenu.js.

2. Vous devez concevoir une application Web comportant les éléments
   suivants (vous pourrez sans doute récupérer des parties
   d'applications des laboratoires précédents) :

   - Une page Login;
   - Une page Logout;

   - Une page principale, visible une fois que l'usager est en ligne;
   - L'application conserve une liste globale des usagers qui sont en
     ligne (qui ont fait un login, mais pas encore un logout);

   - Ajoutez à la page principale une zone d'affichage donnant
     la liste des usagers qui sont présentement en ligne.

     Cette liste doit être mise à jour à intervalle régulier.  Pour ce
     faire, utilisez l'architecture Ajax.

     -- Le client utilise un objet XMLHttpRequest afin d'acheminer une
        requête à un serveur;

        Un gestionnaire s'occupera de mettre à jour la liste d'usagers
        lorsque les informations auront été reçues du serveur;

        Les informations seront dans un document XML.  Vous devrez
        donc accéder au contenu de ce document.

     -- Du côté serveur, un Servlet accède à la liste des usagers et la 
        transmet au client dans un document XML.

        Il y aura des accès concourants à la liste (Login, Logout,
        GetUsersList), vous devrez donc isoler le code qui modifie la
        liste dans une classe dont les méthodes seront 'synchronized'.

3. (Optionel) Si le temps le permet, ajoutez de nouvelles
   fonctionnalités à l'application.

   - Ajoutez une zone message à votre page principale;

   - Ajoutez une zone envoi de message à votre page principale;

   Dans un premier temps, implémentez un système de diffusion
   générale (type broadcast).

   -- Un usager entre un message dans sa boîte d'envoi de
   messages, appuit sur un bouton et le message est transmis
   à l'application (transmis à l'aide d'un objet XMLHttpRequest);

   -- À intervalle régulier, les clients interrogent le serveur afin
   de récupérer tous les nouveaux messages (les messages sont
   sauvegardés dans une liste côté serveur, le client envoi l'index du
   dernier message reçu, le serveur retourne dans un document XML tous
   les messages aux positions supérieures à l'index transmis, par
   exemple). Les messages sont alors ajoutés à la zone message de la
   page principale (textarea).  (On utilise XMLHttpRequest,
   évidemment)

4. (Optionel) Si le temps le permet, ajoutez de nouvelles
   fonctionnalités à l'application.

   Modifiez l'application afin que l'on puisse envoyer les messages à
   un destinataire spécifique.

5. Travaillez sur la partie 3 du projet

* Ressources

  developer.mozilla.org/en/Core_JavaScript_1.5_Guide
  www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/ecma-script-binding.html
  www.yoyodesign.org/doc/w3c/dom2-core/Overview.html
  www.yoyodesign.org/doc/w3c/dom2-events/Overview.html
  www.yoyodesign.org/doc/w3c/dom2-html/Overview.html
  www.yoyodesign.org/doc/w3c/dom2-style/Overview.html
  www.yoyodesign.org/doc/w3c/dom2-traversal-range/Overview.html