Jérôme CUTRONA jerome.cutrona@univ-reims.fr AJAX Jérôme CUTRONA jerome.cutrona@univ-reims.fr 01:07:47 Programmation Web 2012-2013.

Slides:



Advertisements
Présentations similaires
Novembre 2005 – Michel Desconnets PHP : théorie Objectif : introduire les concepts globaux permettant d'aborder la programmation en PHP.
Advertisements

LE LANGAGE JAVASCRIPT LES FENETRES.
Transformation de documents XML
DTD Sylvain Salvati
Copyright France Télécom, tous droits réservés Paris Web Ateliers Les bibliothèques JS jQuery Orange Labs Julien Wajsberg, Recherche & Développement.
SVG: Scalable Vector Graphics Exemple: Vienne Christine Potier, INF347, 20 juin 2008.
Domaines nominaux XSLT
Design Pattern MVC En PHP5.
TP 3-4 BD21.
Formulaire HTML Introduction. Définition de formulaire.
11:16:331 Programmation Web Programmation Web : Formulaires HTML Jérôme CUTRONA
Jérôme CUTRONA PHP et bases de données Jérôme CUTRONA 01:07:51 Programmation Web
PhpMyAdmin 01:08:02 Programmation Web
Jérôme CUTRONA PHP objet Jérôme CUTRONA 01:08:01 Programmation Web
Jérôme CUTRONA PHP PDO Jérôme CUTRONA 01:08:01 Programmation Web
11:37:32 Programmation Web PHP5 objet "avancé" Jérôme CUTRONA
PHP Interface base de données
Introduction aux Web Services Partie 1. Technologies HTML-XML
La balise <FORM>:
Common Gateway Interface
AJAX et les langages serveurs
Présentation de la séquence de cours sur les interactions HTML-javascript Laure Walser, 11 juin 2010.
Ajax Asynchronous JavaScript And XML
Ecole Supérieure Privée de ingénierie et de technologie année universitaire :2013/2014 Cross-Plateform Cours JavaScript.
Les instructions PHP pour l'accès à une base de données MySql
28 novembre 2012 Grégory Petit
Introduction à la structuration des documents: les techniques M2: Gestion des connaissances.
Introduction aux technologies AJAX Ajax François BONNEVILLE
XML: Syntaxe XML, DTD et Schémas
Notions sur le XML Réfs : manuel p 149. Introduction Le XML (eXtensible Markup Language) est un standard d'échange de données. Il fait partie comme le.
Le langage Javascript pour le web
Le langage Javascript pour le web et application au DHTML
Méthode de suppression des cadres entourant les animations flash et activation automatique de leur focus lors du chargement des pages dans Internet Explorer.
Manipulation de formulaires en Javascript
1. 2 PLAN DE LA PRÉSENTATION - SECTION 1 : Code HTML - SECTION 2.1. : CSS (Méthode 1) - SECTION 2.2. : CSS (Méthode 2) - SECTION 3 : JavaScript - SECTION.
1 PHP 1.Langage PHP 1.1. Types de base, variables et constantes 1.2. Opérateurs et expressions 1.3. Instructions 1.4. Fonctions 2.Accès aux bases de données:
Web dynamique PhP + MySQL AYARI Mejdi 2006
PhP-MySQL Pagora 2012/2013 CTD 1 - Presentation de moi ^^
AJAX.
Initiation au web dynamique
Animateur : Med HAIJOUBI
Introduction aux technologies AJAX Ajax François BONNEVILLE
Javascript 1° PARTIE : LES BASES
LES CLIENTS WEB RICHES Tuteur : Olivier CARON LEFEBVRE Benoit
PHP & My SQL.
PROGRAMMATION WEB FRONT-END.
JavaScript Nécessaire Web.
JavaScript.
Les balises HTML et les objets JavaScript correspondants Objet document L'objet document est important dans la mesure ou il contient tous les objets du.
 Objet window, la fenêtre du navigateur
Programmation Web : Introduction à XML
Technologies web et web sémantique TP3 - XML. XML eXtensible Markup Language (langage extensible de balisage) – Caractéristiques: méta-langage = un langage.
420-B63 Programmation Web Avancée Auteur : Frédéric Thériault 1.
Tutorat en bio-informatique Le 14 novembre Au programme… Les objets –Propriétés (attributs) –Constructeurs –Méthodes.
S'initier au HTML et aux feuilles de style CSS Cours 5.
AJAX Open Source Etat de l’art Baris Ulucinar, Octobre 2006 University of Fribourg, Suisse Sous la direction de Prof. O. Abou Khaled.
Asynchronous JavaScript And XML AJAX C. Petitpierre
S'initier au HTML et aux feuilles de style CSS Cours 5.
 Formulaires HTML : traiter les entrées utilisateur
AJAX Jérôme CUTRONA 06:28:58 Programmation Web
Initiation au JavaScript
Module : Langage XML (21h)
Programmation Web : DOM en PHP Jérôme CUTRONA 11:06:45 Programmation Web
Module 133 Développer des applications Web Introduction à PHP.
1 PHP 5 Notions fondamentales (niveau 1 cours #3) Formation continue – Cégep de Sainte-Foy François G Couillard.
Ajax1 A. Obaid - Programmation web (INF2005) AJAX.
APP-TSWD Apprentissage Par Problèmes Techniques des Sites Web Dynamiques Licence Professionnelle FNEPI Valérie Bellynck, Benjamin Brichet-Billet, Mazen.
1 Programmation Web Programmation WAMP/LAMP Premiers principes.
Asynchronous Javascript And Xml
Programmation Web : Introduction à XML
Transcription de la présentation:

Jérôme CUTRONA jerome.cutrona@univ-reims.fr AJAX Jérôme CUTRONA jerome.cutrona@univ-reims.fr 01:07:47 Programmation Web 2012-2013

AJAX ? AJAX : Asynchronous JavaScript And XML (JavaScript asynchrone et XML) JavaScript : langage de script côté client (navigateur) Asynchrone : par rapport au chargement de la page Web et des portions de page Web XML : langage à balises permettant, entre autre, de structurer des données Permet, grâce à JavaScript, la récupération de données XML (mais aussi texte ou JSON) disponibles sur un serveur Web 01:07:47 Programmation Web 2012-2013

AJAX ? N'est PAS une technologie N'est PAS un logiciel N'est PAS un greffon (plug-in) N'est PAS un détergent C'est l'utilisation conjointe de : HTML CSS DOM / JavaScript XMLHttpRequest (JavaScript) XML (ou JSON) 01:07:47 Programmation Web 2012-2013

Asynchrone ? (une vision) Fonctionnement classique du Web : Chargement d'une page Interaction de l'utilisateur (clic, sélection, formulaire, …) Chargement d'une autre page ... Fonctionnement "AJAX" du Web : Chargement d'une partie de page Chargement d'une autre partie de page 01:07:47 Programmation Web 2012-2013

Échanges client/serveur classiques url Demande de la page Traitement clic Envoi de la page Demande de la page Traitement clic Envoi de la page Demande de la page Traitement Envoi de la page 01:07:47 Programmation Web 2012-2013

Échanges client/serveur en AJAX url Demande de la page Traitement clic Envoi de la page JavaScript Demande de données Traitement clic Envoi des données JavaScript JavaScript Demande de données Traitement Envoi des données JavaScript 01:07:47 Programmation Web 2012-2013

XMLHTTPRequest Cœur d'AJAX Objet JavaScript En fait, objets JavaScript Microsoft : ActiveXObject("Msxml2.XMLHTTP") ActiveXObject("Microsoft.XMLHTTP") Les autres : XMLHttpRequest() Permet d'effectuer des requêtes HTTP et d'en récupérer le résultat 01:07:47 Programmation Web 2012-2013

XMLHTTPRequest : propriétés onreadystatechange Gestionnaire d'événements pour les changements d'état. Il faut assigner une fonction à cette propriété pour traiter sur les données renvoyées. readyState Statut de l'objet. responseText Réponse sous forme de chaîne de caractères. responseXML Réponse sous forme d'objet DOM. status Code numérique de réponse du serveur HTTP. statusText Message accompagnant le code de réponse. 01:07:47 Programmation Web 2012-2013

XMLHTTPRequest : méthodes abort Abandonne la requête HTTP. getAllResponseHeaders Renvoie l'ensemble des entêtes HTTP de la réponse. getResponseHeader Renvoie la valeur d'un champ d'entête HTTP. open Prépare une requête HTTP en indiquant ses paramètres. send Effectue la requête HTTP, en envoyant les données. setRequestHeader Assigne une valeur à un champ d'entête HTTP. 01:07:47 Programmation Web 2012-2013

Utilisation de XMLHTTPRequest Instancier l'objet Initialiser une requête Méthode, URL Asynchrone ? Associer une fonction au traitement du résultat de la requête Effectuer la requête Envoyer des données ? Traiter le résultat Texte ? XML / JSON ? 01:07:47 Programmation Web 2012-2013

Utilisation de XMLHTTPRequest Instancier l'objet Initialiser une requête Méthode, URL Asynchrone ? Associer une fonction au traitement du résultat de la requête Effectuer la requête Envoyer des données ? Traiter le résultat Texte ? XML / JSON ? 01:07:47 Programmation Web 2012-2013

Instancier XMLHTTPRequest function GetXmlHttpObject() { var objXMLHttp = null ; if (window.XMLHttpRequest) { // pour non-IE objXMLHttp = new XMLHttpRequest() ; } else { if (window.ActiveXObject) { try { // pour IE objXMLHttp = new ActiveXObject("Msxml2.XMLHTTP") ; catch (e) { try { // pour une autre version de IE … 01:07:47 Programmation Web 2012-2013

Instancier XMLHTTPRequest … objXMLHttp = new ActiveXObject("Microsoft.XMLHTTP") ; } catch (e) { window.alert("Votre navigateur ne prend pas en charge l'objet XMLHTTPRequest.") ; return objXMLHttp ; var xmlHttp = GetXmlHttpObject() ; Variable globale 01:07:47 Programmation Web 2012-2013

Utilisation de XMLHTTPRequest Instancier l'objet Initialiser une requête Méthode, URL Asynchrone ? Associer une fonction au traitement du résultat de la requête Effectuer la requête Envoyer des données ? Traiter le résultat Texte ? XML / JSON ? 01:07:47 Programmation Web 2012-2013

XMLHTTPRequest::open() Initialiser une requête HTTP open (method, URL [, asyncFlag[, userName [, password]]]) Paramètres : method : "GET" ou "POST" (ou "HEAD") URL : relative ou absolue asyncFlag : mode asynchrone ? true ou false userName : nom d'utilisateur password : mot de passe Remarque : l'URL peut contenir des paramètres, test.php?id=12&a=salut 01:07:47 Programmation Web 2012-2013

Paramètres d'URL Caractères réservés des URL [/#?&:~…]  non admissibles dans les paramètres  encodage sous la forme %code_hexadécimal Caractère Code SPACE %20 < %3C > %3E # %23 % %25 { %7B } %7D | %7C \ %5C ^ %5E ~ %7E Caractère Code [ %5B ] %5D ` %60 ; %3B / %2F ? %3F : %3A @ %40 = %3D & %26 $ %24 01:07:47 Programmation Web 2012-2013

Paramètres d'URL en JavaScript Comment échapper une chaîne en JavaScript ? Écrire une table de transcription (bof…) Utiliser string escape(string) escape("J'ai faim !")  J%27ai%20faim%20%21 Comment déséchapper une chaîne ? Écrire une table de transcription inverse (bof…) Utiliser string unescape(string) unescape("J%27ai%20faim%20%21")  J'ai faim ! var url="test.php?v="+escape(valeur_v) 01:07:47 Programmation Web 2012-2013

Utilisation de XMLHTTPRequest Instancier l'objet Initialiser une requête Méthode, URL Asynchrone ? Associer une fonction au traitement du résultat de la requête Effectuer la requête Envoyer des données ? Traiter le résultat Texte ? XML / JSON ? 01:07:47 Programmation Web 2012-2013

Changements d'état de la requête Chaque changement d'état de la requête engendre un événement L'état de la requête est reflété par l'état de l'objet XMLHTTPRequest : propriété readyState 0  non initialisé 1  ouverture. La méthode open() a été appelée avec succès 2  envoyé. La méthode send() a été appelée avec succès 3  en train de recevoir. Des données sont en train d'être transférées, mais le transfert n'est pas terminé 4  terminé. Les données sont chargées 01:07:47 Programmation Web 2012-2013

Fonction de traitement du résultat Désigner la fonction qui sera lancée lors des changements d'état de la requête Désigner la fonction qui sera lancée quand la requête sera terminée et donc que les données seront disponibles XMLHTTPRequest.onreadystatechange function traiter() { if (xmlHttp.readyState == 4) window.alert('Données dispo !'); } xmlHttp.onreadystatechange=traiter; Requête terminée 01:07:47 Programmation Web 2012-2013

Utilisation de XMLHTTPRequest Instancier l'objet Initialiser une requête Méthode, URL Asynchrone ? Associer une fonction au traitement du résultat de la requête Effectuer la requête Envoyer des données ? Traiter le résultat Texte ? XML / JSON ? 01:07:47 Programmation Web 2012-2013

XMLHTTPRequest::send() Effectue la requête HTTP initialisée avec XMLHTTPRequest::open() Requête de type "GET" ou "HEAD" Aucune donnée à envoyer xmlHttp.send(null) ; Requête de type "POST" données à envoyer xmlHttp.setRequestHeader( 'Content-Type', 'application/x-www-form-urlencoded') ; xmlHttp.send("v=valeur&x=12"); 01:07:47 Programmation Web 2012-2013

Utilisation de XMLHTTPRequest Instancier l'objet Initialiser une requête Méthode, URL Asynchrone ? Associer une fonction au traitement du résultat de la requête Effectuer la requête Envoyer des données ? Traiter le résultat Texte ? XML / JSON ? 01:07:47 Programmation Web 2012-2013

Traiter le résultat de la requête Traitement effectué dans la fonction associée au changement d'état de la requête quand l'état est 4 (requête terminée) Le résultat peut se présenter sous 3 formes : texte qui peut aussi être du code HTML XML (http://dej/XML/COURS/introduction_XML.pdf) JSON Le traitement consiste généralement en une modification de la page Web courante en utilisant JavaScript, le DOM et les CSS 01:07:47 Programmation Web 2012-2013

Récupérer le résultat de la requête Sous forme de texte texte brut texte contenant du code HTML XMLHTTPRequest.responseText Sous forme d'un objet DOM XML XMLHTTPRequest.responseXML Serveur : Content-Type: text/xml Sous forme de données JSON texte contenant du code JSON eval(XMLHTTPRequest.responseText) 01:07:47 Programmation Web 2012-2013

Exploiter des données au format texte Texte brut document.mon_formulaire.saisie.value = xmlHttp.responseText Texte contenant du code HTML document.getElementById('txt').innerHTML = xmlHttp.responseText 01:07:47 Programmation Web 2012-2013

Exemple d'utilisation d'AJAX Serveur Réseau Traitement Saisie function showHint(str) { xmlHttp = GetXmlHttpObject() ; xmlHttp.onreadystatechange=stateChanged ; xmlHttp.open("GET",url,true) ; xmlHttp.send(null) ; } function stateChanged() { if (xmlHttp.readyState == 4) { document.getElementById("txtHint").innerHTML =xmlHttp.responseText ; } } 01:07:47 Programmation Web 2012-2013

Exploiter des données au format XML Objet XML : getElementsByTagName(n)  Collection de nœuds Collection de nœuds : length  nombre d'éléments [x]  accès au xéme élément Nœud : firstChild  Premier fils childNodes  Collection de fils hasChildNodes()  Possède des fils ? nodeValue  Valeur du nœud nodeName  Nom du nœud getAttribute(a)  Valeur de l'attribut 01:07:47 Programmation Web 2012-2013

Introduction (ou rappel) XML <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE Recette SYSTEM "Recette.dtd"> <Recette> <Titre>Tarte aux pommes</Titre> <Auteur> <Nom>Desjardin</Nom> <Prenom>Eric</Prenom> </Auteur> </Recette> Ça ressemble à du HTML où : on utilise ses propres balises la syntaxe est rigoureuse Ce document ne peut pas s’afficher directement On utilise des d’outils pour manipuler l’information de ce document 01:07:47 Programmation Web 2012-2013

Introduction (ou rappel) XML HTML Structure orientée présentation Jeu de basiles fini et normalisé Rendu graphique dépendant du navigateur Réutilisation limitée Cible : Web Écriture laxiste Stockage : Fichier Normalisation de HTML en XML  XHTML XML a été conçu pour décrire, stocker et échanger des données XML Toutes structures, données Jeu de balises extensible Pas de présentation directe (nécessite une feuille de style) Exploitation sémantique Cible : Web, PDF, échange,… Rédaction de contenu Stockage : Fichier, BD, natif 01:07:47 Programmation Web 2012-2013

Introduction (ou rappel) XML Déclaration XML <?xml version="1.0" encoding="ISO-8859-1"?> Tout élément doit avoir une balise de fermeture <p>C'est un paragraphe</p> <br /> Les noms d'éléments sont sensibles à la casse <Titre> et <titre> sont deux éléments différents Les éléments doivent être correctement appairés <Un><Deux>Ceci est incorrect</Un></Deux> Un élément racine qui enserre tous les autres  il doit exister et est unique dans le document ex : <html> … </html> 01:07:47 Programmation Web 2012-2013

Introduction (ou rappel) XML Ce qui est entre la balise ouvrante et la balise fermante représente le contenu de l'élément L'ordre des éléments est significatif même si ici Chiffres peut être vu comme un conteneur <Chiffres><Un /><Deux /></Chiffres> <Chiffres><Deux /><Un /></Chiffres> Un élément peut contenir plusieurs éléments identiques <Chiffres> <Chiffre>Un</Chiffre> <Chiffre>Deux</Chiffre> </Chiffres> 01:07:47 Programmation Web 2012-2013

Introduction (ou rappel) XML Un élément peut être qualifié par des attributs <Chiffre combien="1" libelle="un" /> Un attribut a un nom ET une valeur L'ordre des attributs n'a pas d'importance ≈ <Chiffre libelle="un" combien="1" /> Les valeurs des attributs doivent être encadrés par des guillemets ou des apostrophes Un élément ne peut pas avoir deux fois le même attribut <Mot style='verbe' style='futur'>verra</Mot> 01:07:47 Programmation Web 2012-2013

Introduction (ou rappel) XML Le prologue d'un document XML contient tout ce qui précède l'élément racine et peut contenir : la déclaration XML des instructions de traitement des commentaires une clause DTD Instructions de traitement <?xml-stylesheet type="text/css" href="style.css"?> Association à une référence externe à la structure (DTD) <!DOCTYPE La_racine SYSTEM "Recette.dtd"> 01:07:47 Programmation Web 2012-2013

Introduction (ou rappel) XML Commentaires XML <!-- Je suis un commentaire --> Entités prédéfinies < > & " &apos; Entités des caractères ne faisant pas partie du jeu utilisé Mise en œvre => Mise en œuvre Entités de texte définies dans la DTD &copyright; Entité référence à des fichiers binaires <image photo="flipper"> 01:07:47 Programmation Web 2012-2013

Introduction (ou rappel) XML Noms des entités : Peuvent contenir des chiffres, des lettres ou d'autres caractères Ne peuvent PAS commencer par un chiffre ou un caractère de ponctuation Ne peuvent PAS commencer par la chaîne xml (dans toutes les casses possibles) Ne peuvent PAS contenir des espaces Ne doivent PAS contenir le caractère " : " qui est utilisé par les espaces de nom 01:07:47 Programmation Web 2012-2013

Exemple XML  DOM <?xml version="1.0" encoding="UTF-8" ?> <liste> <animal idani="AC001-03"> <noman>Aquilon</noman> <visites>1</visites> </animal> <animal idani="AC001-01"> <noman>Bobo</noman> <visites>3</visites> </liste> 01:07:47 Programmation Web 2012-2013

Exemple XML  DOM <liste> <animal idani="AC001-03"> ¶·· ¶·· <?xml version="1.0" encoding="UTF-8" ?> <liste> <animal idani="AC001-03"> <noman>Aquilon</noman> <visites>1</visites> </animal> <animal idani="AC001-01"> <noman>Bobo</noman> <visites>3</visites> </liste> ¶·· animal idani="AC001-03" animal idani="AC001-01" ¶···· ¶···· ¶···· ¶···· noman visites noman visites ¶···· ¶···· Aquilon 1 Bobo 3 01:07:47 Programmation Web 2012-2013

.getElementsByTagName( .getElementsByTagName( Exemple XML  DOM liste xmlHttp.responseXML ¶·· ¶·· .getElementsByTagName( 'animal') ¶·· animal idani="AC001-03" animal idani="AC001-01" [0] .getAttribute('idani') ¶···· ¶···· ¶···· .getElementsByTagName( 'noman ')[0] ¶···· noman visites noman visites .firstChild ¶···· ¶···· .nodeValue Aquilon 1 Bobo 3 01:07:47 Programmation Web 2012-2013 39

JSON (JavaScript Object Notation) Format de structure de données Utilise la syntaxe des objets JavaScript {"menu": {"id": "file", "value": "File" "popup": {"item": [ {"value": "New" }, {"value": "Open"}, {"value": "Close"}] }}} <menu id="file" value="File"> <popup> <item value="New" /> <item value="Open" /> <item value="Close" /> </popup> </menu> Équivalent XML 01:07:47 Programmation Web 2012-2013

JSON (JavaScript Object Notation) http://www.json.org/ Deux structures : Objet {} {chaîne : valeur} {chaîne : valeur, chaîne : valeur, …} Tableau [] [valeur] [valeur, valeur, …] Valeur : chaîne|nombre|objet|tableau|true|false|null 01:07:47 Programmation Web 2012-2013

JSON (JavaScript Object Notation) http://www.json.org/ object {} { members } members pair pair , members string : value array [] [ elements ] elements value value , elements value string number object array true false null "" " chars " chars char char chars char any-Unicode-character-     except-"-or-\-or-     control-character \" \\ \/ \b \f \n \r \t \u four-hex-digits 01:07:47 Programmation Web 2012-2013

JSON (JavaScript Object Notation) http://www.json.org/ number int int frac int exp int frac exp digit digit1-9 digits - digit - digit1-9 digits frac . digits exp e digits digits digit digit digits e e+ e- E E+ E- 01:07:47 Programmation Web 2012-2013

JSON (JavaScript Object Notation) http://www.json.org/ 01:07:47 Programmation Web 2012-2013

JSON (JavaScript Object Notation) http://www.json.org/ 01:07:47 Programmation Web 2012-2013

JSON (JavaScript Object Notation) http://www.json.org/ 01:07:47 Programmation Web 2012-2013

JSON (JavaScript Object Notation) http://www.json.org/ 01:07:47 Programmation Web 2012-2013

Exploiter des données au format JSON Syntaxe des objets JavaScript Évaluer une chaîne contenant du code JSON  Création d'un objet var myObject = eval('('+myJSONtext+')'); Accès aux attributs de l'objet { "menu": { "id": "file", "value": "File" "popup": { "item": … myObject.menu.id  'file' 01:07:47 Programmation Web 2012-2013

JavaScript Objet avec prototype.js prototype.js est une bibliothèque JavaScript Écrite par Sam Stephenson http://prototypejs.org/ Orientée objet Nombreux tâches pénibles encapsulées Encapsule AJAX de façon élégante 1800 lignes / 43 Ko 01:07:47 Programmation Web 2012-2013

prototype.js 01:07:47 Programmation Web 2012-2013

prototype.js Fonctions utilitaires $("id") ≡ document.getElementById("id") $("id1", "id2", …) ≡ array(document.getElementById("id1"), document.getElementById("id2"), …) $F(id) ≈ document.getElementById("id").value 01:07:47 Programmation Web 2012-2013

prototype.js Ajax.Request Objet encapsulant l'utilisation habituelle d'AJAX new Ajax.Request( url, params ) url : l'url à interroger params : objet anonyme {method : 'post' |'get', parameters : param | data, onComplete : callback asynchronous : true | false} callback (xmlHttp) 01:07:47 Programmation Web 2012-2013

Exemple prototype.js <html> <head> <title>AJAX avec prototype.js</title> <script type='text/javascript' src='prototype-1.4.0.js'></script> <script type='text/javascript'> function stateCompleted(remote) { $("txtHint").innerHTML=remote.responseText ; } function showHint(str) { if (str.length == 0) { $("txtHint").innerHTML = "" ; return ; } var ajax = new Ajax.Request("gethint.php", { method : "get", parameters : "q="+str, onComplete : stateCompleted, asynchronous : true }) ; } </script> </head> … 01:07:47 Programmation Web 2012-2013

Exemple prototype.js … <body> <form> First Name: <input type="text" id="txt1" onkeyup="showHint(this.value)"> </form> <p>Suggestions: <span id="txtHint"></span></p> </body> </html> 01:07:47 Programmation Web 2012-2013

Petit bilan autour d'AJAX Pour : Basé sur des standards ouverts Minimise la bande passante Interfaces réactives, attente réduite Interfaces proches des clients lourds Contre : Maximise le nombre de requêtes Coût de développement Perte de suivant / précédent, favoris A la mode, il faut en coller partout… JavaScript, accessibilité des anciens navigateurs 01:07:47 Programmation Web 2012-2013