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. » 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