GIS and Media fusion

"The explosive growth of the GeoWeb and geographic information has made GIS powerful media for the general public to communicate, but perhaps more importantly, GIS have also become media for constructive dialogs and interactions about social issues." - Sui & Goodchild

User Tools

Site Tools


ajax:sol

This is an old revision of the document!


Corrigé de l'examen final

Enoncé de l'examen.

Question 1

Quels sont les différents ingrédients qui composent le modèle d'application web dit AJAX ?

Le modèle d'application web dit AJAX combine un ensemble de technologies Web :

  • HTML et CSS pour la mise en forme structurelle et visuelle de l'IHM
  • JavaScript comme langage de programmation et système de gestion événementielle des interactions
  • le DOM pour manipuler l'IHM
  • l'objet XMLHTTPRequest pour la communication client/serveur, offrant notamment le mode asynchrone
  • des formats d'échange d'information entre client et serveur, en XML, en JSON, …
  • Remarque : jQuery est simplement une surcouche (un super-ingrédient) qui facilite l'utilisation de toutes ces technologies

Décrivez les différentes étapes d'un dialogue AJAX caractéristique en précisant à chaque étape les ingrédients qui interviennent ainsi que leur rôle.

Chaque ingrédient a son utilité et une utilisation précise dans un dialogue AJAX caractéristique qui peut se découper en 5 étapes :

  1. une application est chargée dans le navigateur web de l'utilisateur avec toute la description HTML et CSS de l'IHM et tous les comportements JavaScript enregistrés pour la gestion des interactions. Une interaction utilisateur a lieu, déclenchant une fonction JavaScript du moteur AJAX.
  2. cette fonction invoque un service par une requête HTTP asynchrone grâce à l'objet XMLHTTPRequest et enregistre une fonction de rappel qui traitera le résultat de la requête (cf. point 4). Le cas échéant, des informations sont envoyées avec la requête au serveur.
  3. le service appelé traite la requête selon les informations reçues (si disponibles) et formule la réponse. Celle-ci est renvoyée au client.
  4. la fonction JavaScript de rappel enregistrée au point 2 se déclenche à reception de la réponse du serveur. Celle-ci traite les informations et les préparent pour l'étape suivante.
  5. l'interface HTML/CSS est modifiée par le DOM pour signifier, généralement visuellement, les informations reçues du serveur.

Question 2

Mais alors pourquoi cela ne fonctionne pas ?

La contrat “Same Origin Policy” liée aux navigateurs web interdit toute communication directe d'une application web avec un autre serveur que celui d'origine de cette application.

Mon collègue est précisément dans ce cas interdit, car il communique avec un serveur, celui de Panoramio, qui n'est le serveur d'origine de son application (à moins de travailler pour Panoramio ;-) !).

Quelle démarche faut-il entreprendre pour profiter tout de même de ce service Panoramio ?

Pour contourner ce contrat, je lui conseille d'utiliser un proxy intermédiaire sur le serveur d'origine. Celui-ci devra gérer la communication avec le serveur Panoramio en relayant la requête cliente (la communication serveur à serveur n'est pas contrainte).

Question 3

Ecrire l'instruction jQuery la plus précise qui correspond à un tel appel AJAX.

ajax/sol.1309373175.txt.gz · Last modified: 2018/05/15 17:17 (external edit)