SlideShare a Scribd company logo
1 of 21
Introduction à AJAX
M. DIENG Abdoulaye
adieng@gmail.com
Objectif général
Comprendre le principe de fonctionnement d'AJAX
Objectifs opérationnels
• Connaître les avantages et inconvénients d’AJAX
• Connaître les attributs et méthodes de l’objet XMLHttpRequest
• Construire une interaction AJAX
Sommaire
1. Présentation d’AJAX
a) Définition
b) Intérêt
c) Fonctionnement
2. Objet XMLHttpRequest
3. Construction d’une requête
Présentation d’AJAX
définition
• Inventé début 2005 par Jesse J. Garrett, le terme AJAX
(Asynchronous JavaScript And XML) désigne la conjonction
des technologies suivantes :
– XHTML pour la structuration sémantique du contenu d’une
page Web;
– CSS pour la mise en forme du contenu d’une page Web;
– DOM pour la manipulation des éléments d’une page Web;
– L’objet XMLHttpRequest de JavaScript qui permet d’assurer
des transferts asynchrones entre le client et le serveur;
– XML pour les formats de données à transférer;
– JavaScript qui permet l’interaction de ces différentes
technologies.
Présentation d’AJAX
avantages
• Rechargement partiel de la page
l’objet XMLHttpRequest assure la récupération et l’insertion
dans la page en cours des seules données à modifier.
• Économie de la bande passante
l’élimination du transfert de nombreuses informations
redondantes, allège fortement le trafic réseau.
• Augmentation de la réactivité de l’application
• Non blocage de l’application pendant le traitement de la
requête
l’échange XMLHttpRequest asynchrone permet à l’internaute
de continuer à travailler pendant de traitement de la requête.
Présentation d’AJAX
inconvénients
• Pas de mémorisation des actions dans l’historique
les différents contenus d’une application Ajax s’affiche
toujours dans la même page.
• Problème d’indexation des contenus
Seul le premier contenu d’une page sera :
– indexé par les moteurs de recherche;
– enregistré comme favoris par les navigateurs.
• Dépendance de l’activation de JavaScript sur le navigateur
Présentation d’AJAX
fonctionnement
Sommaire
1. Présentation d’AJAX
2. Objet XMLHttpRequest
a) Présentation
b) Propriétés
c) Méthodes
3. Construction d’une requête
Objet XMLHttpRequest
présentation
• La communication des applications Ajax avec le serveur
repose essentiellement sur l’objet XMLHttpRequest.
• XMLHttpRequest a d'abord été développé par Microsoft, en
tant qu'objet ActiveX, pour Internet Explorer 5.0. (sep 1998)
• Il a ensuite été repris et implémenté en tant qu’objet
Javascript par les autres navigateurs.
• La création de l'objet se fait différemment selon le navigateur
• Sa création sous IE nécessite de tester plusieurs versions d’IE.
• Toutefois, après la création de l'objet, les méthodes et
propriétés sont les mêmes pour tous les navigateurs.
Objet XMLHttpRequest
quelques méthodes
• abort() : stoppe la requête et réinitialise la valeur de
readyState à 0
• getAllResponseHeaders() : retourne une chaîne de caractères
contenant toutes les en-têtes de réponse
• getResponseHeader(headerField) : retourne la valeur d’un
champ d’en-tête
• open(requestMethod, url, asynchronousFlag) : prépare l’envoi
de la requête
• send(bodyContent) : envoie le corps du message
(éventuellement null par exemple lors de l’exploitation de la
méthode GET)
• setRequestHeader(headerField, headerValue) : ajoute une
paire champ/valeur à l’en-tête lors de l’envoi de la requête
Objet XMLHttpRequest
quelques propriétés
• onreadystatechange : notifie de l’état de la requête et de ses
évènements (associée à une fonction de traitement).
• readyState : état de l’objet XHR au cours de la requête
(0 : non initialisé, 1 : requête en cours d’envoi, 2 : requête
envoyée, 3 : réponse en cours de réception, 4 : complétude de
la réponse).
• responseText : réponse du serveur sous format chaîne de
caractères.
• responseXML : réponse du serveur sous format XML.
• status : code de la réponse HTTP reçue depuis le serveur.
• statusText : libellé du code de la réponse HTTP reçue depuis le
serveur.
Sommaire
1. Présentation d’AJAX
2. Objet XMLHttpRequest
3. Construction d’une interaction AJAX
a) Création d'une instance de l'objet XMLHttpRequest
b) Désignation de la fonction de rappel
c) Initialisation de la requête
d) Envoi de la requête
e) Traitement de la requête par le serveur
f) Traitement de la réponse
Construction d’une interaction AJAX
les étapes
1. Création d’un déclencheur et d’au moins une zone ou sera
affichée la réponse de l'action utilisateur (fichier .html)
2. Création de l'objet XMLHttpRequest
(fichier .js à inclure dans le fichier .html)
3. Désignation de la fonction de rappel (ou callback)
(code javascript à inclure dans le fichier .html)
4. Initialisation de la requête
(code javascript à inclure dans le fichier .html)
5. Envoi de la requête
(code javascript à inclure dans le fichier .html)
6. Traitement de la requête par le serveur
(fichier .php dans le même domaine que le fichier .html)
7. Traitement de la réponse par le navigateur
(fonction javascript à inclure dans le fichier .html)
Construction d’une interaction AJAX
Création d’un déclencheur et d’une zone d’affichage de la réponse
Cette étape consiste à la création d’une page (X)HTML intégrant :
• un déclencheur (un lien, bouton ou n'importe quel contrôle que
l'utilisateur peut manipuler pour lancer une action).
Exemple :
• Une ou +sieurs zones munie chacune d’un identifiant unique où
sera affichée la réponse de l'action de l’utilisateur.
Exemple :
<p> Entrez un entier SVP :<input id="entier" /> </p>
<p>
<input type="button" onclick="parite();" value="pair ou impair?" />
</p>
<p>
<span id="nbr">...</span> est <span id="resultat">...</span>
</p>
Construction d’une interaction AJAX
Création de l'objet XMLHttpRequest
function creationXHR() {
var resultat=null;
try { // Test pour les navigateurs : Mozilla, Opera, ...
resultat= new XMLHttpRequest();
}
catch (Error) {
try { // Test pour les navigateurs Internet Explorer > 5.0
resultat= new ActiveXObject("Msxml2.XMLHTTP");
}
catch (Error) {
try { // Test pour le navigateur Internet Explorer 5.0
resultat= new ActiveXObject("Microsoft.XMLHTTP");
}
catch (Error) {
resultat= null;
}
}
}
return resultat;
}
L’objet XMLHttpRequest est créé par l’instruction:
objetXHR = creationXHR()
Construction d’une interaction AJAX
désignation de la fonction de rappel
• La fonction de rappel (ou callback) devra être appelée à
chaque fois que l’état de l’objet XMLHttpRequest change
(requête en cours d’envoi, requête envoyée, réponse en cours
de réception, complétude de la réponse).
• Pour cela, on renseigne la propriété onreadystatechange de
l'objet.
Par exemple :
objetXHR.onreadystatechange = actualiserPage;
• Cette fonction est surtout utilisée pour le traitement de la
réponse complète du serveur
Construction d’une interaction AJAX
initialisation de la requête
• La requête est initialisée par la méthode open() qui reçoit :
– la méthode d’envoi (GET ou POST) ;
– l'adresse du programme chargé de traiter la requête, ainsi
qu’éventuellement, la liste des paramètres à passer à celui-
ci, dans le cas où la requête est effectuée en mode GET ;
– false(synchrone) ou true (asynchrone : mode par défaut).
• Exemple avec POST :
objetXHR.open("post","parite.php",true);
• Exemple avec GET :
var entier=document.getElementById("entier").value;
objetXHR.open("get","parite.php?entier="+entier,true);
Construction d’une interaction AJAX
envoi de la requête
• La requête est envoyée par la méthode send() qui reçoit :
– ou bien NULL si la méthode d’envoi est GET ;
– ou bien la liste des paramètres à passer au programme
chargé de traiter la requête, si la méthode d’envoi est POST.
• Exemple avec GET :
objetXHR.send(NULL);
• Exemple avec POST :
var entier=document.getElementById("entier").value;
objetXHR.setRequestHeader("Content-Type","application/x-
www-form-urlencoded");
objetXHR.send("entier="+entier);
Construction d’une interaction AJAX
traitement de la requête par le serveur
• La requête peut être traitée par un script .php
• Exemple : (parite.php)
<?php
header("Content-Type: text/plain");//la réponse est du texte
if(!empty($_REQUEST)){
extract($_REQUEST);
if($entier%2==0){
echo 'pair';
}
else{
echo 'impair';
}
}
?>
Construction d’une interaction AJAX
traitement de la réponse par le navigateur
• La réponse est traitée par la fonction de rappel.
• Exemple :
function actualiserPage() {
if (objetXHR.readyState == 4) {
if (objetXHR.status == 200) {
var entier= document.getElementById("entier");
var nbr= document.getElementById("nbr");
var resultat= document.getElementById("resultat");
nbr.innerHTML=entier;
resultat.innerHTML=objetXHR.responseText;
}
}
}

More Related Content

What's hot

Les Streams de Java 8
Les Streams de Java 8Les Streams de Java 8
Les Streams de Java 8Antoine Rey
 
Ionic, AngularJS,Cordova,NodeJS,Sass
Ionic, AngularJS,Cordova,NodeJS,SassIonic, AngularJS,Cordova,NodeJS,Sass
Ionic, AngularJS,Cordova,NodeJS,Sassmarwa baich
 
Java 8 - collections et stream
Java 8 - collections et streamJava 8 - collections et stream
Java 8 - collections et streamFranck SIMON
 
Node.js File system & Streams
Node.js File system & StreamsNode.js File system & Streams
Node.js File system & StreamsEyal Vardi
 
Mise en oeuvre des Frameworks de Machines et Deep Learning pour les Applicati...
Mise en oeuvre des Frameworks de Machines et Deep Learning pour les Applicati...Mise en oeuvre des Frameworks de Machines et Deep Learning pour les Applicati...
Mise en oeuvre des Frameworks de Machines et Deep Learning pour les Applicati...ENSET, Université Hassan II Casablanca
 
ASP.NET Web API and HTTP Fundamentals
ASP.NET Web API and HTTP FundamentalsASP.NET Web API and HTTP Fundamentals
ASP.NET Web API and HTTP FundamentalsIdo Flatow
 

What's hot (20)

Les Streams de Java 8
Les Streams de Java 8Les Streams de Java 8
Les Streams de Java 8
 
Ajax Ppt 1
Ajax Ppt 1Ajax Ppt 1
Ajax Ppt 1
 
Servlets et JSP
Servlets et JSPServlets et JSP
Servlets et JSP
 
JavaScript
JavaScriptJavaScript
JavaScript
 
Support de cours angular
Support de cours angularSupport de cours angular
Support de cours angular
 
Jsf presentation
Jsf presentationJsf presentation
Jsf presentation
 
Ionic, AngularJS,Cordova,NodeJS,Sass
Ionic, AngularJS,Cordova,NodeJS,SassIonic, AngularJS,Cordova,NodeJS,Sass
Ionic, AngularJS,Cordova,NodeJS,Sass
 
Node.js Express Framework
Node.js Express FrameworkNode.js Express Framework
Node.js Express Framework
 
jQuery
jQueryjQuery
jQuery
 
Nouveautés Java 9-10-11
Nouveautés Java 9-10-11Nouveautés Java 9-10-11
Nouveautés Java 9-10-11
 
Ajax Presentation
Ajax PresentationAjax Presentation
Ajax Presentation
 
Introduction à Symfony
Introduction à SymfonyIntroduction à Symfony
Introduction à Symfony
 
Support de Cours JSF2 Première partie Intégration avec Spring
Support de Cours JSF2 Première partie Intégration avec SpringSupport de Cours JSF2 Première partie Intégration avec Spring
Support de Cours JSF2 Première partie Intégration avec Spring
 
Java 8 - collections et stream
Java 8 - collections et streamJava 8 - collections et stream
Java 8 - collections et stream
 
File system node js
File system node jsFile system node js
File system node js
 
Node.js File system & Streams
Node.js File system & StreamsNode.js File system & Streams
Node.js File system & Streams
 
Mise en oeuvre des framework de machines et deep learning v1
Mise en oeuvre des framework de machines et deep learning v1 Mise en oeuvre des framework de machines et deep learning v1
Mise en oeuvre des framework de machines et deep learning v1
 
Polymorphisme (cours, résumé)
Polymorphisme (cours, résumé)Polymorphisme (cours, résumé)
Polymorphisme (cours, résumé)
 
Mise en oeuvre des Frameworks de Machines et Deep Learning pour les Applicati...
Mise en oeuvre des Frameworks de Machines et Deep Learning pour les Applicati...Mise en oeuvre des Frameworks de Machines et Deep Learning pour les Applicati...
Mise en oeuvre des Frameworks de Machines et Deep Learning pour les Applicati...
 
ASP.NET Web API and HTTP Fundamentals
ASP.NET Web API and HTTP FundamentalsASP.NET Web API and HTTP Fundamentals
ASP.NET Web API and HTTP Fundamentals
 

Viewers also liked

Ajax et Accessibilite
Ajax et AccessibiliteAjax et Accessibilite
Ajax et Accessibilitemikeh
 
Csharp2 : classes et objets
Csharp2 : classes et objetsCsharp2 : classes et objets
Csharp2 : classes et objetsAbdoulaye Dieng
 
php2 : formulaire-session-PDO
php2 : formulaire-session-PDOphp2 : formulaire-session-PDO
php2 : formulaire-session-PDOAbdoulaye Dieng
 
Mieux Filtrer ses listes WordPress avec Ajax et WP_Query
Mieux Filtrer ses listes WordPress avec Ajax et WP_QueryMieux Filtrer ses listes WordPress avec Ajax et WP_Query
Mieux Filtrer ses listes WordPress avec Ajax et WP_QuerySymetris
 
Présentation jQuery pour débutant
Présentation jQuery pour débutantPrésentation jQuery pour débutant
Présentation jQuery pour débutantStanislas Chollet
 
Ajax en Java - GTI780 & MTI780 - ETS - A09
Ajax en Java - GTI780 & MTI780 - ETS - A09Ajax en Java - GTI780 & MTI780 - ETS - A09
Ajax en Java - GTI780 & MTI780 - ETS - A09Claude Coulombe
 
Module 7 intégration d'ajax et les services web dans les applications asp.net
Module 7   intégration d'ajax et les services web dans les applications asp.netModule 7   intégration d'ajax et les services web dans les applications asp.net
Module 7 intégration d'ajax et les services web dans les applications asp.netMohammed Amine Mostefai
 
Enfants et Santé - Dossier de Presse - Mai 2012
Enfants et Santé - Dossier de Presse - Mai 2012Enfants et Santé - Dossier de Presse - Mai 2012
Enfants et Santé - Dossier de Presse - Mai 2012Agence Mayflower
 
Green Monkeys - le covoiturage en toute liberté
Green Monkeys - le covoiturage en toute libertéGreen Monkeys - le covoiturage en toute liberté
Green Monkeys - le covoiturage en toute libertéelbing
 
Le bateau en fête, le côté amusant de Venise
Le bateau en fête, le côté amusant de VeniseLe bateau en fête, le côté amusant de Venise
Le bateau en fête, le côté amusant de VeniseWalter Fano
 
Inversión en promoción: qué hacemos, cuanto invertimos, qué obtenemos y cómo ...
Inversión en promoción: qué hacemos, cuanto invertimos, qué obtenemos y cómo ...Inversión en promoción: qué hacemos, cuanto invertimos, qué obtenemos y cómo ...
Inversión en promoción: qué hacemos, cuanto invertimos, qué obtenemos y cómo ...Centro de Transfusión Sanguínea de Córdoba
 
Si leo la vida con las tic’s...
Si leo la vida con las tic’s...Si leo la vida con las tic’s...
Si leo la vida con las tic’s...elizapiedrahita
 
Brides 27-31juillet-2015
Brides 27-31juillet-2015Brides 27-31juillet-2015
Brides 27-31juillet-2015Daniel Alouidor
 

Viewers also liked (20)

Ajax et Accessibilite
Ajax et AccessibiliteAjax et Accessibilite
Ajax et Accessibilite
 
Introduction au Jquery
Introduction au JqueryIntroduction au Jquery
Introduction au Jquery
 
Csharp2 : classes et objets
Csharp2 : classes et objetsCsharp2 : classes et objets
Csharp2 : classes et objets
 
php2 : formulaire-session-PDO
php2 : formulaire-session-PDOphp2 : formulaire-session-PDO
php2 : formulaire-session-PDO
 
introduction à MongoDB
introduction à MongoDBintroduction à MongoDB
introduction à MongoDB
 
Mieux Filtrer ses listes WordPress avec Ajax et WP_Query
Mieux Filtrer ses listes WordPress avec Ajax et WP_QueryMieux Filtrer ses listes WordPress avec Ajax et WP_Query
Mieux Filtrer ses listes WordPress avec Ajax et WP_Query
 
Présentation jQuery pour débutant
Présentation jQuery pour débutantPrésentation jQuery pour débutant
Présentation jQuery pour débutant
 
Ajax en Java - GTI780 & MTI780 - ETS - A09
Ajax en Java - GTI780 & MTI780 - ETS - A09Ajax en Java - GTI780 & MTI780 - ETS - A09
Ajax en Java - GTI780 & MTI780 - ETS - A09
 
Module 7 intégration d'ajax et les services web dans les applications asp.net
Module 7   intégration d'ajax et les services web dans les applications asp.netModule 7   intégration d'ajax et les services web dans les applications asp.net
Module 7 intégration d'ajax et les services web dans les applications asp.net
 
Le subjonctif bac
Le subjonctif   bacLe subjonctif   bac
Le subjonctif bac
 
Maridajes de la cerveza
Maridajes de la cervezaMaridajes de la cerveza
Maridajes de la cerveza
 
Enfants et Santé - Dossier de Presse - Mai 2012
Enfants et Santé - Dossier de Presse - Mai 2012Enfants et Santé - Dossier de Presse - Mai 2012
Enfants et Santé - Dossier de Presse - Mai 2012
 
Green Monkeys - le covoiturage en toute liberté
Green Monkeys - le covoiturage en toute libertéGreen Monkeys - le covoiturage en toute liberté
Green Monkeys - le covoiturage en toute liberté
 
Ex.le gérondif
Ex.le gérondifEx.le gérondif
Ex.le gérondif
 
Le bateau en fête, le côté amusant de Venise
Le bateau en fête, le côté amusant de VeniseLe bateau en fête, le côté amusant de Venise
Le bateau en fête, le côté amusant de Venise
 
Juegos de guerra en los negocios
Juegos de guerra en los negociosJuegos de guerra en los negocios
Juegos de guerra en los negocios
 
Inversión en promoción: qué hacemos, cuanto invertimos, qué obtenemos y cómo ...
Inversión en promoción: qué hacemos, cuanto invertimos, qué obtenemos y cómo ...Inversión en promoción: qué hacemos, cuanto invertimos, qué obtenemos y cómo ...
Inversión en promoción: qué hacemos, cuanto invertimos, qué obtenemos y cómo ...
 
Si leo la vida con las tic’s...
Si leo la vida con las tic’s...Si leo la vida con las tic’s...
Si leo la vida con las tic’s...
 
Acompañamiento tutorial en e mediador
Acompañamiento tutorial en e mediadorAcompañamiento tutorial en e mediador
Acompañamiento tutorial en e mediador
 
Brides 27-31juillet-2015
Brides 27-31juillet-2015Brides 27-31juillet-2015
Brides 27-31juillet-2015
 

Similar to Introduction à ajax

Requêtes HTTP synchrones et asynchrones
Requêtes HTTPsynchrones et asynchronesRequêtes HTTPsynchrones et asynchrones
Requêtes HTTP synchrones et asynchronesAbdoulaye Dieng
 
cours web developpement statique AJAX 2024
cours web developpement statique AJAX  2024cours web developpement statique AJAX  2024
cours web developpement statique AJAX 2024YounesOuladSayad1
 
ajqxè_àànndkllllllllllllllllllllllllllllllllllllllllll
ajqxè_àànndkllllllllllllllllllllllllllllllllllllllllllajqxè_àànndkllllllllllllllllllllllllllllllllllllllllll
ajqxè_àànndkllllllllllllllllllllllllllllllllllllllllllElalami8
 
0554-programmation-web-ajax programmation web ajax
0554-programmation-web-ajax programmation web ajax0554-programmation-web-ajax programmation web ajax
0554-programmation-web-ajax programmation web ajaxMarouaneMyyara2
 
Ajax GTI780 & MTI780 ETS A09
Ajax  GTI780 & MTI780  ETS  A09Ajax  GTI780 & MTI780  ETS  A09
Ajax GTI780 & MTI780 ETS A09Claude Coulombe
 
Introduction aux RIA (Rich Internet Applications)
Introduction aux RIA (Rich Internet Applications)Introduction aux RIA (Rich Internet Applications)
Introduction aux RIA (Rich Internet Applications)Tugdual Grall
 
Ajax - GTI780 & MTI780 - ETS - A08
Ajax - GTI780 & MTI780 - ETS - A08Ajax - GTI780 & MTI780 - ETS - A08
Ajax - GTI780 & MTI780 - ETS - A08Claude Coulombe
 
react-slides.ppx (2) (1).pptx react presentation basic
react-slides.ppx (2) (1).pptx react presentation basicreact-slides.ppx (2) (1).pptx react presentation basic
react-slides.ppx (2) (1).pptx react presentation basiczineblahib2
 
Android Lab Test : La connectivité réseau avec HTTP (français)
Android Lab Test : La connectivité réseau avec HTTP (français)Android Lab Test : La connectivité réseau avec HTTP (français)
Android Lab Test : La connectivité réseau avec HTTP (français)Bruno Delb
 
ENIB cours CAI Web - Séance 3 - JSP/Servlet - Cours
ENIB cours CAI Web - Séance 3 - JSP/Servlet - CoursENIB cours CAI Web - Séance 3 - JSP/Servlet - Cours
ENIB cours CAI Web - Séance 3 - JSP/Servlet - CoursHoracio Gonzalez
 
Ajax en Java - GTI780 & MTI780 - ETS - A08
Ajax en Java - GTI780 & MTI780 - ETS - A08Ajax en Java - GTI780 & MTI780 - ETS - A08
Ajax en Java - GTI780 & MTI780 - ETS - A08Claude Coulombe
 
C5 Javascript French
C5 Javascript FrenchC5 Javascript French
C5 Javascript FrenchVlad Posea
 
Introduction à React JS
Introduction à React JSIntroduction à React JS
Introduction à React JSAbdoulaye Dieng
 
Introductions Aux Servlets
Introductions Aux ServletsIntroductions Aux Servlets
Introductions Aux ServletsFrançois Charoy
 
Ajax intro 2pp
Ajax intro 2ppAjax intro 2pp
Ajax intro 2ppRYMAA
 

Similar to Introduction à ajax (20)

Requêtes HTTP synchrones et asynchrones
Requêtes HTTPsynchrones et asynchronesRequêtes HTTPsynchrones et asynchrones
Requêtes HTTP synchrones et asynchrones
 
cours web developpement statique AJAX 2024
cours web developpement statique AJAX  2024cours web developpement statique AJAX  2024
cours web developpement statique AJAX 2024
 
ajqxè_àànndkllllllllllllllllllllllllllllllllllllllllll
ajqxè_àànndkllllllllllllllllllllllllllllllllllllllllllajqxè_àànndkllllllllllllllllllllllllllllllllllllllllll
ajqxè_àànndkllllllllllllllllllllllllllllllllllllllllll
 
0554-programmation-web-ajax programmation web ajax
0554-programmation-web-ajax programmation web ajax0554-programmation-web-ajax programmation web ajax
0554-programmation-web-ajax programmation web ajax
 
ajax.pdf
ajax.pdfajax.pdf
ajax.pdf
 
Ajax GTI780 & MTI780 ETS A09
Ajax  GTI780 & MTI780  ETS  A09Ajax  GTI780 & MTI780  ETS  A09
Ajax GTI780 & MTI780 ETS A09
 
Introduction aux RIA (Rich Internet Applications)
Introduction aux RIA (Rich Internet Applications)Introduction aux RIA (Rich Internet Applications)
Introduction aux RIA (Rich Internet Applications)
 
Ajax - GTI780 & MTI780 - ETS - A08
Ajax - GTI780 & MTI780 - ETS - A08Ajax - GTI780 & MTI780 - ETS - A08
Ajax - GTI780 & MTI780 - ETS - A08
 
react-slides.ppx (2) (1).pptx react presentation basic
react-slides.ppx (2) (1).pptx react presentation basicreact-slides.ppx (2) (1).pptx react presentation basic
react-slides.ppx (2) (1).pptx react presentation basic
 
Android Lab Test : La connectivité réseau avec HTTP (français)
Android Lab Test : La connectivité réseau avec HTTP (français)Android Lab Test : La connectivité réseau avec HTTP (français)
Android Lab Test : La connectivité réseau avec HTTP (français)
 
ENIB cours CAI Web - Séance 3 - JSP/Servlet - Cours
ENIB cours CAI Web - Séance 3 - JSP/Servlet - CoursENIB cours CAI Web - Séance 3 - JSP/Servlet - Cours
ENIB cours CAI Web - Séance 3 - JSP/Servlet - Cours
 
Ajax en Java - GTI780 & MTI780 - ETS - A08
Ajax en Java - GTI780 & MTI780 - ETS - A08Ajax en Java - GTI780 & MTI780 - ETS - A08
Ajax en Java - GTI780 & MTI780 - ETS - A08
 
Support JEE Servlet Jsp MVC M.Youssfi
Support JEE Servlet Jsp MVC M.YoussfiSupport JEE Servlet Jsp MVC M.Youssfi
Support JEE Servlet Jsp MVC M.Youssfi
 
C5 Javascript
C5 JavascriptC5 Javascript
C5 Javascript
 
C5 Javascript French
C5 Javascript FrenchC5 Javascript French
C5 Javascript French
 
Services rest & jersey
Services rest & jerseyServices rest & jersey
Services rest & jersey
 
Serveur http
Serveur httpServeur http
Serveur http
 
Introduction à React JS
Introduction à React JSIntroduction à React JS
Introduction à React JS
 
Introductions Aux Servlets
Introductions Aux ServletsIntroductions Aux Servlets
Introductions Aux Servlets
 
Ajax intro 2pp
Ajax intro 2ppAjax intro 2pp
Ajax intro 2pp
 

More from Abdoulaye Dieng

Fondamentaux du Référencement naturel
Fondamentaux du Référencement naturelFondamentaux du Référencement naturel
Fondamentaux du Référencement naturelAbdoulaye Dieng
 
Panorama des Technologies mobiles
Panorama des Technologies mobilesPanorama des Technologies mobiles
Panorama des Technologies mobilesAbdoulaye Dieng
 
Prise en main de WordPress
Prise en main de WordPressPrise en main de WordPress
Prise en main de WordPressAbdoulaye Dieng
 
Fondamentaux d’une API REST
Fondamentaux d’une API RESTFondamentaux d’une API REST
Fondamentaux d’une API RESTAbdoulaye Dieng
 
Introduction à JavaScript
Introduction à JavaScriptIntroduction à JavaScript
Introduction à JavaScriptAbdoulaye Dieng
 
Introduction à l’orienté objet en Python
Introduction à l’orienté objet en PythonIntroduction à l’orienté objet en Python
Introduction à l’orienté objet en PythonAbdoulaye Dieng
 
Initiation à l'algorithmique
Initiation à l'algorithmiqueInitiation à l'algorithmique
Initiation à l'algorithmiqueAbdoulaye Dieng
 
Introduction à JavaScript
Introduction à JavaScriptIntroduction à JavaScript
Introduction à JavaScriptAbdoulaye Dieng
 
Initiation à l'algorithmique
Initiation à l'algorithmiqueInitiation à l'algorithmique
Initiation à l'algorithmiqueAbdoulaye Dieng
 
Introduction à AngularJS
Introduction à AngularJSIntroduction à AngularJS
Introduction à AngularJSAbdoulaye Dieng
 
Initiation à Express js
Initiation à Express jsInitiation à Express js
Initiation à Express jsAbdoulaye Dieng
 

More from Abdoulaye Dieng (20)

Introduction à React
Introduction à ReactIntroduction à React
Introduction à React
 
Fondamentaux du Référencement naturel
Fondamentaux du Référencement naturelFondamentaux du Référencement naturel
Fondamentaux du Référencement naturel
 
Introduction à Symfony
Introduction à SymfonyIntroduction à Symfony
Introduction à Symfony
 
Panorama des Technologies mobiles
Panorama des Technologies mobilesPanorama des Technologies mobiles
Panorama des Technologies mobiles
 
Prise en main de WordPress
Prise en main de WordPressPrise en main de WordPress
Prise en main de WordPress
 
Initiation à Bootstrap
Initiation à BootstrapInitiation à Bootstrap
Initiation à Bootstrap
 
Introduction à Laravel
Introduction à LaravelIntroduction à Laravel
Introduction à Laravel
 
Fondamentaux d’une API REST
Fondamentaux d’une API RESTFondamentaux d’une API REST
Fondamentaux d’une API REST
 
Introduction à Angular
Introduction à AngularIntroduction à Angular
Introduction à Angular
 
Introduction à JavaScript
Introduction à JavaScriptIntroduction à JavaScript
Introduction à JavaScript
 
Introduction à l’orienté objet en Python
Introduction à l’orienté objet en PythonIntroduction à l’orienté objet en Python
Introduction à l’orienté objet en Python
 
Introduction à Python
Introduction à PythonIntroduction à Python
Introduction à Python
 
Initiation à l'algorithmique
Initiation à l'algorithmiqueInitiation à l'algorithmique
Initiation à l'algorithmique
 
Initiation à Bootstrap
Initiation à BootstrapInitiation à Bootstrap
Initiation à Bootstrap
 
Introduction à jQuery
Introduction à jQueryIntroduction à jQuery
Introduction à jQuery
 
Introduction à JavaScript
Introduction à JavaScriptIntroduction à JavaScript
Introduction à JavaScript
 
Initiation à l'algorithmique
Initiation à l'algorithmiqueInitiation à l'algorithmique
Initiation à l'algorithmique
 
Introduction à HTML 5
Introduction à HTML 5Introduction à HTML 5
Introduction à HTML 5
 
Introduction à AngularJS
Introduction à AngularJSIntroduction à AngularJS
Introduction à AngularJS
 
Initiation à Express js
Initiation à Express jsInitiation à Express js
Initiation à Express js
 

Introduction à ajax

  • 1. Introduction à AJAX M. DIENG Abdoulaye adieng@gmail.com
  • 2. Objectif général Comprendre le principe de fonctionnement d'AJAX
  • 3. Objectifs opérationnels • Connaître les avantages et inconvénients d’AJAX • Connaître les attributs et méthodes de l’objet XMLHttpRequest • Construire une interaction AJAX
  • 4. Sommaire 1. Présentation d’AJAX a) Définition b) Intérêt c) Fonctionnement 2. Objet XMLHttpRequest 3. Construction d’une requête
  • 5. Présentation d’AJAX définition • Inventé début 2005 par Jesse J. Garrett, le terme AJAX (Asynchronous JavaScript And XML) désigne la conjonction des technologies suivantes : – XHTML pour la structuration sémantique du contenu d’une page Web; – CSS pour la mise en forme du contenu d’une page Web; – DOM pour la manipulation des éléments d’une page Web; – L’objet XMLHttpRequest de JavaScript qui permet d’assurer des transferts asynchrones entre le client et le serveur; – XML pour les formats de données à transférer; – JavaScript qui permet l’interaction de ces différentes technologies.
  • 6. Présentation d’AJAX avantages • Rechargement partiel de la page l’objet XMLHttpRequest assure la récupération et l’insertion dans la page en cours des seules données à modifier. • Économie de la bande passante l’élimination du transfert de nombreuses informations redondantes, allège fortement le trafic réseau. • Augmentation de la réactivité de l’application • Non blocage de l’application pendant le traitement de la requête l’échange XMLHttpRequest asynchrone permet à l’internaute de continuer à travailler pendant de traitement de la requête.
  • 7. Présentation d’AJAX inconvénients • Pas de mémorisation des actions dans l’historique les différents contenus d’une application Ajax s’affiche toujours dans la même page. • Problème d’indexation des contenus Seul le premier contenu d’une page sera : – indexé par les moteurs de recherche; – enregistré comme favoris par les navigateurs. • Dépendance de l’activation de JavaScript sur le navigateur
  • 9. Sommaire 1. Présentation d’AJAX 2. Objet XMLHttpRequest a) Présentation b) Propriétés c) Méthodes 3. Construction d’une requête
  • 10. Objet XMLHttpRequest présentation • La communication des applications Ajax avec le serveur repose essentiellement sur l’objet XMLHttpRequest. • XMLHttpRequest a d'abord été développé par Microsoft, en tant qu'objet ActiveX, pour Internet Explorer 5.0. (sep 1998) • Il a ensuite été repris et implémenté en tant qu’objet Javascript par les autres navigateurs. • La création de l'objet se fait différemment selon le navigateur • Sa création sous IE nécessite de tester plusieurs versions d’IE. • Toutefois, après la création de l'objet, les méthodes et propriétés sont les mêmes pour tous les navigateurs.
  • 11. Objet XMLHttpRequest quelques méthodes • abort() : stoppe la requête et réinitialise la valeur de readyState à 0 • getAllResponseHeaders() : retourne une chaîne de caractères contenant toutes les en-têtes de réponse • getResponseHeader(headerField) : retourne la valeur d’un champ d’en-tête • open(requestMethod, url, asynchronousFlag) : prépare l’envoi de la requête • send(bodyContent) : envoie le corps du message (éventuellement null par exemple lors de l’exploitation de la méthode GET) • setRequestHeader(headerField, headerValue) : ajoute une paire champ/valeur à l’en-tête lors de l’envoi de la requête
  • 12. Objet XMLHttpRequest quelques propriétés • onreadystatechange : notifie de l’état de la requête et de ses évènements (associée à une fonction de traitement). • readyState : état de l’objet XHR au cours de la requête (0 : non initialisé, 1 : requête en cours d’envoi, 2 : requête envoyée, 3 : réponse en cours de réception, 4 : complétude de la réponse). • responseText : réponse du serveur sous format chaîne de caractères. • responseXML : réponse du serveur sous format XML. • status : code de la réponse HTTP reçue depuis le serveur. • statusText : libellé du code de la réponse HTTP reçue depuis le serveur.
  • 13. Sommaire 1. Présentation d’AJAX 2. Objet XMLHttpRequest 3. Construction d’une interaction AJAX a) Création d'une instance de l'objet XMLHttpRequest b) Désignation de la fonction de rappel c) Initialisation de la requête d) Envoi de la requête e) Traitement de la requête par le serveur f) Traitement de la réponse
  • 14. Construction d’une interaction AJAX les étapes 1. Création d’un déclencheur et d’au moins une zone ou sera affichée la réponse de l'action utilisateur (fichier .html) 2. Création de l'objet XMLHttpRequest (fichier .js à inclure dans le fichier .html) 3. Désignation de la fonction de rappel (ou callback) (code javascript à inclure dans le fichier .html) 4. Initialisation de la requête (code javascript à inclure dans le fichier .html) 5. Envoi de la requête (code javascript à inclure dans le fichier .html) 6. Traitement de la requête par le serveur (fichier .php dans le même domaine que le fichier .html) 7. Traitement de la réponse par le navigateur (fonction javascript à inclure dans le fichier .html)
  • 15. Construction d’une interaction AJAX Création d’un déclencheur et d’une zone d’affichage de la réponse Cette étape consiste à la création d’une page (X)HTML intégrant : • un déclencheur (un lien, bouton ou n'importe quel contrôle que l'utilisateur peut manipuler pour lancer une action). Exemple : • Une ou +sieurs zones munie chacune d’un identifiant unique où sera affichée la réponse de l'action de l’utilisateur. Exemple : <p> Entrez un entier SVP :<input id="entier" /> </p> <p> <input type="button" onclick="parite();" value="pair ou impair?" /> </p> <p> <span id="nbr">...</span> est <span id="resultat">...</span> </p>
  • 16. Construction d’une interaction AJAX Création de l'objet XMLHttpRequest function creationXHR() { var resultat=null; try { // Test pour les navigateurs : Mozilla, Opera, ... resultat= new XMLHttpRequest(); } catch (Error) { try { // Test pour les navigateurs Internet Explorer > 5.0 resultat= new ActiveXObject("Msxml2.XMLHTTP"); } catch (Error) { try { // Test pour le navigateur Internet Explorer 5.0 resultat= new ActiveXObject("Microsoft.XMLHTTP"); } catch (Error) { resultat= null; } } } return resultat; } L’objet XMLHttpRequest est créé par l’instruction: objetXHR = creationXHR()
  • 17. Construction d’une interaction AJAX désignation de la fonction de rappel • La fonction de rappel (ou callback) devra être appelée à chaque fois que l’état de l’objet XMLHttpRequest change (requête en cours d’envoi, requête envoyée, réponse en cours de réception, complétude de la réponse). • Pour cela, on renseigne la propriété onreadystatechange de l'objet. Par exemple : objetXHR.onreadystatechange = actualiserPage; • Cette fonction est surtout utilisée pour le traitement de la réponse complète du serveur
  • 18. Construction d’une interaction AJAX initialisation de la requête • La requête est initialisée par la méthode open() qui reçoit : – la méthode d’envoi (GET ou POST) ; – l'adresse du programme chargé de traiter la requête, ainsi qu’éventuellement, la liste des paramètres à passer à celui- ci, dans le cas où la requête est effectuée en mode GET ; – false(synchrone) ou true (asynchrone : mode par défaut). • Exemple avec POST : objetXHR.open("post","parite.php",true); • Exemple avec GET : var entier=document.getElementById("entier").value; objetXHR.open("get","parite.php?entier="+entier,true);
  • 19. Construction d’une interaction AJAX envoi de la requête • La requête est envoyée par la méthode send() qui reçoit : – ou bien NULL si la méthode d’envoi est GET ; – ou bien la liste des paramètres à passer au programme chargé de traiter la requête, si la méthode d’envoi est POST. • Exemple avec GET : objetXHR.send(NULL); • Exemple avec POST : var entier=document.getElementById("entier").value; objetXHR.setRequestHeader("Content-Type","application/x- www-form-urlencoded"); objetXHR.send("entier="+entier);
  • 20. Construction d’une interaction AJAX traitement de la requête par le serveur • La requête peut être traitée par un script .php • Exemple : (parite.php) <?php header("Content-Type: text/plain");//la réponse est du texte if(!empty($_REQUEST)){ extract($_REQUEST); if($entier%2==0){ echo 'pair'; } else{ echo 'impair'; } } ?>
  • 21. Construction d’une interaction AJAX traitement de la réponse par le navigateur • La réponse est traitée par la fonction de rappel. • Exemple : function actualiserPage() { if (objetXHR.readyState == 4) { if (objetXHR.status == 200) { var entier= document.getElementById("entier"); var nbr= document.getElementById("nbr"); var resultat= document.getElementById("resultat"); nbr.innerHTML=entier; resultat.innerHTML=objetXHR.responseText; } } }