Des années de concurrence entre différents navigateurs ont abouti à la création de nombreux outils pour aider les développeurs à accomplir des tâches auparavant difficiles à réaliser. Désormais, avec juste un petit script, vous pouvez créer une application qui lie les données à un contrôle utilisateur afin qu'elles communiquent avec le serveur via un contrôle de type proxy intégré.
Dans Internet Explorer (IE), ces éléments incluent les îlots de données XML et les objets XMLHTTP qui sont utilisés pour lier les données aux éléments de formulaire. Les objets XMLHTTP sont utilisés pour créer des connexions au serveur dans la page actuelle sans naviguer vers d'autres pages. et les appels asynchrones. J'utiliserai ces deux fonctionnalités faciles à utiliser pour créer une application de discussion simple, composée de quelques pages ASP faisant office d'interface utilisateur, de JavaScript pour implémenter les fonctions client et de T-SQL pour compléter la logique métier dans SQL Server 2000.
Client et serveur communiquent via XML. Une fois que le serveur Web a reçu un fragment de message, celui-ci est ajouté à une table MESSAGES horodatée dans SQL Server. Sur la base d'un intervalle de temps prédéfini, le client demandera au serveur des informations mises à jour, y compris une liste de messages et une liste d'utilisateurs en ligne ajoutées à la base de données depuis la dernière fois qu'il a demandé des informations au serveur.
Le client enverra un objet XMLHTTP au serveur. L'action est soit une demande d'actualisation du message et de la liste des utilisateurs, soit l'envoi d'un nouveau message. Ces actions sont stockées dans une table appelée ACTIONS. Le serveur répondra à la demande correspondante ou acceptera un nouveau message et l'ajoutera à la table MESSAGES.
Lorsque le serveur répond à une demande de message, il renvoie une liste de tous les nouveaux messages depuis la dernière demande. Afin de suivre l'activité du client, j'utilise une table ACTIVITY qui contient la date/heure de l'activité du client. L'identité du client est stockée dans la table HANDLES, qui a un nom intuitif.
Voici le script pour créer la table :
Toutes les opérations sur les données seront effectuées via des procédures stockées. Tous les interfaçages de données se feront via un COM générique qui fait office de liaison entre le serveur Web et SQL Server 2000. L'objet COM expose une méthode RunSPReturnStream que je souhaite utiliser. Le premier paramètre de cette méthode est le nom de la procédure stockée et le deuxième paramètre est un tableau de tableaux de paramètres. Le tableau de paramètres est un tableau simple au format suivant : (paraName, paramType, paramLength, paramValue). paramType est l’une des énumérations de types de paramètres ADO. Une page ASP est chargée d'accepter les actions et de créer des réponses, je l'appellerai HandleAction.asp.
La page de discussion contiendra une zone pour afficher les messages de discussion ; cette zone est une TABLE contenue dans un DIV. Cette TABLE est liée à un îlot de données XML xmlMessages. Une autre zone affiche l'utilisateur actuel ; cette zone est également une TABLE contenue dans un DIV, qui est lié à un îlot de données XML xmlUsers. Il existe également une zone TEXTAREA permettant aux utilisateurs de saisir des messages.