AJAX

From Openflyers

Jump to: navigation, search

Contents

Introduction

Dans le but de permettre un certain nombre d'interaction "dynamiques" côté client par le biais d'AJAX (tout en maintenant la possibilité d'une utilisation sans JavaScript), le but de cette page est de présenter la structure présente côté serveur pour supporter l'ajaxification.

Cette présentation s'appuie sur la raison première d'AJAX chez OF : la réservation sans passer par le formulaire de résa.

Exemples

AJAX

Résumé

Asynchronous JavaScript And XML.

Modèle asynchrone de connexion client/serveur. Plutôt que de charger une nouvelle page à chaque "interaction" de l'utilisateur sur son client, ce dernier par le biais de JavaScript, envoir une requête au serveur et attend la réponse sous la forme d'un packet XML.

AJAX chez OF

Afin de ne pas avoir à ré-écrire plusieurs fois dans OF des fonctions ayant le même but mais étant appelées différement (ex: réservation depuis le formulaire de résa et réservation depuis le cahier de résa), il est indispensable de séparer les couches dialogue/métiers/présentation

Commandes

Les commandes métiers sont regroupées dans un répertoire Command. Chaque fichier a trait à un groupe de commandes particulier. Pour le moment recordBooking.php qui gère les résas.

Le fichier recordBooking.php contient une classe (et une seule comme préconisée par les règles de codage). Cette classe s'appelle Processor (à spécifier).

Cette classe contient uniquement du code métier qui interagit avec la base de données. Il ne gère par conséquent aucun affichage.

Son rôle :

  • vérifier la validité d'un ordre
  • exécuter l'ordre
  • renvoyer soit une réponse posivitive soit un code d'erreur.

Pour le moment, le code erreur est une phrase contenant à la fois des labels du tableau "translation" et des portions textes ne devant pas être traduites. La séparation entre les deux se fait par ** sachant que une portion sur deux est un label en commencant par un label.

Le code erreur, peut être une alerte qui nécessite une confirmation de l'utilisateur avant validation.

Cette façon de faire peut être discutée et modifiée.

interface html classique

Pour permettre à l'utilisateur d'envoyer une commande il peut passer par l'interface classique HTML qui le conduit alors sur un formulaire. Le formulaire doit être construit dans un fichier includes/formXXX.php (ex: formBooking.php). L'exécution de la commande passe alors par le fichier includes/recordXXX.php qui a pour objet d'appeler le code métier (command/recordBoorking.php) et d'afficher le cas échéant un message d'alerte. includes/recordXXX.php contient donc du code html potentiel).

liaison AJAX

A implémenter

Lorsque l'utilisateur tente de réserver directement depuis le cahier, JavaScript envoie son ordre sous forme d'un packet XML à AJAX/recordXXX.php.

recordXXX.php s'occupe d'appeler le code métier (command/recordXXX.php) et renvoie une réponse XML. (D'où l'intérêt pour command/recordXXX.php de générer une réponse la plus proche possible de celle envoyée par AJAX/recordXXX.php).

Format des commandes XML

Une commande est encapsulée dans une chaine XML qui est de la forme suivante :

<command action="XXX">

<parameter name="bidule">gnagna</parameter>

<parameter name="truc">gnignou</parameter>

</command>

Personal tools