Asynchronous JavaScript And XML AJAX C. Petitpierre

Slides:



Advertisements
Présentations similaires
Lundi 15 Juin 2009 Les principales techniques JavaScript.
Advertisements

« Les Mercredis du développement » Ajax / Client CallBack / Atlas
Internet et le client- serveur Licence Pro IE Cours Internet / Intranet Le Web HTML Protocoles Le client universel Contenus dynamiques.
A propos de java Sun, fin 1995 C++ nettoyé semi-interprété
JavaScript.
Adapté du cours de Sang Shin, Sun Microsystems
Jérôme CUTRONA AJAX Jérôme CUTRONA 01:07:47 Programmation Web
11:16:331 Programmation Web Programmation Web : Formulaires HTML Jérôme CUTRONA
Parallel Programming in C with MPI and OpenMP
Introduction aux Web Services Partie 1. Technologies HTML-XML
Faculté I&C, Claude Petitpierre, André Maurer Bases de données Javascript – SQL - LemanOS.
2006/2007Denis Cabasson – Programmation Web Cours de programmation web ENSAE
Faculté I&C, Claude Petitpierre, André Maurer 1 Systèmes multi-processus C. Petitpierre
Faculté I&C, Claude Petitpierre, André Maurer 1 Héritage par prototype Héritage dattributs ou de méthodes Héritage de constructeurs.
AJAX et les langages serveurs
Faculté I&C, Claude Petitpierre, André Maurer What is this ? (Quest ce que this ?)
Faculté I&C, Claude Petitpierre, André Maurer Les objets Introduction.
Présentation de la séquence de cours sur les interactions HTML-javascript Laure Walser, 11 juin 2010.
Faculté I&C, Claude Petitpierre, André Maurer setTimeout ( nomDeFonction, 1000 ) setTimeout ( instructions, 1000 ) setTimeout ( nomDeFonction(), 1000 )
Comprendre l’environnement Web
Ajax. Contexte Dabord, il y a eu les terminaux des ordinateurs centraux (environnements TSO, CICS, etc.) et les terminaux plein écran des environnements.
Introduction à DOM Maroua Bouzid
Ajax Asynchronous JavaScript And XML
Faculté I&C, Claude Petitpierre, André Maurer Evénements en Javascript prototype.js.
ASP.NET Par: Hugo St-Louis. C ARACTÉRISTIQUES A SP. NET Évolution, successeur plus flexible quASP (Active Server Pages). Pages web dynamiques permettant.
Faculté I&C, Claude Petitpierre, André Maurer 1 JavaCC Java compilers compiler (version générant du Javascript)
Introduction aux technologies AJAX Ajax François BONNEVILLE
Méthode de suppression des cadres entourant les animations flash et activation automatique de leur focus lors du chargement des pages dans Internet Explorer.
Faculté I&C, Claude Petitpierre, André Maurer Scalable vector graphics SVG (documentation en français – voir menu.
Arbres DOM (OC informatique, EPFL)
Faculté I&C, Claude Petitpierre, André Maurer Gestion des fichiers de LemanOS Ne fonctionne que sous LemanOS. On peut voir les fichiers créés dans ce système.
AJAX.
Faculté I&C, Claude Petitpierre, André Maurer JavaCC Java compilers compiler (version générant du Javascript)
Projet de Master première année 2007 / 2008
Arbres DOM et XML (OC informatique, EPFL). html head body table html headbody table tr td texte1texte2 tr td texte3texte4 Deux représentations d’un arbre.
Initiation au web dynamique
Animateur : Med HAIJOUBI
Introduction aux technologies AJAX Ajax François BONNEVILLE
Internet et le client- serveur Licence Pro IE Cours Internet / Intranet Le Web HTML Protocoles Le client universel Contenus dynamiques.
PROGRAMMATION WEB FRONT-END.
JavaScript Nécessaire Web.
Faculté I&C, Claude Petitpierre, André Maurer 1 JSON Templates json.org (fin de la page: json-template.js)
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.
 Syntaxe du langage PHP
420-B63 Programmation Web Avancée Auteur : Frédéric Thériault 1.
GESTION DE COMPOSANTS ELECTRONIQUES
Résumé des concepts liés aux objets C. Petitpierre, EPFL.
S'initier au HTML et aux feuilles de style CSS Cours 5.
420-B63 Programmation Web Avancée Auteur : Frédéric Thériault 1.
AJAX Open Source Etat de l’art Baris Ulucinar, Octobre 2006 University of Fribourg, Suisse Sous la direction de Prof. O. Abou Khaled.
Introduction au socle MEAN
AJAX.
G.KEMBELLEC - UP81 Master 2 THYP Cas pratique d’utilisation De simpleXML Un lecteur de RSS Novembre 2009.
S'initier au HTML et aux feuilles de style CSS Cours 5.
AJAX Jérôme CUTRONA 06:28:58 Programmation Web
Initiation au JavaScript
Sites Web interactifs 2010 / 2011 / S1 Bernhard Rieder.
420-B63 Programmation Web Avancée Auteur : Frédéric Thériault 1.
Programmation Web : DOM en PHP Jérôme CUTRONA 11:06:45 Programmation Web
Faculté I&C, Claude Petitpierre, André Maurer Exercice sur les bases de données Quelques rappels et conseils (voir Aides > Accès à la base de données)
Modules créés au moyen d’objets C. Petitpierre. Objets construits sans constructeurs ( en Java on a introduit la réflexion pour cela ) var obj1 = { }
Apports des clients riches dans le monde du WEB 2.0
CPI/BTS 2 Programmation Web Les sites dynamiques Prog Web CPI/BTS2 – M. Dravet – 02/10/2003 Dernière modification: 02/10/2003.
Séminaire de rentrée cours de programmation web & Wordpress
Ajax1 A. Obaid - Programmation web (INF2005) AJAX.
Web 2.0 Dailymotion YouTubeYouTube (Google) MySpace Facebook DMOZDMOZ (annuaire participatif) ExaleadExalead (moteur de recherche) AdSenseAdSense (Google)
AJAX Jean-Jacques LE COZ. Introduction Technologie incontournable aujourd'hui Soubassement technique au Web 2.0 Technologie déjà présente dans les applications.
DWR Jean-Jacques LE COZ. Introduction Projet DWR Framework AJAX Projet Open Source commencé en 2004 Licence GPL (Apache Software License v2) Sponsorisé.
Architecture J2EE Web Jean-Jacques LE COZ. J2EE Web Container JSP Page Servlet J ava 2 Standard Edition APIs EJB Container EJB JDBCJMS JNDI JTA JavaMail.
Programmation Web : DOM en PHP
Transcription de la présentation:

Asynchronous JavaScript And XML AJAX C. Petitpierre 2.3.2009 Des exemples et le code de l’appel AJAX complet sont disponibles en http://lti.epfl.ch/AJAX

AJAX AJAX est un type de programmation rendu populaire en 2005 par Google. AJAX n’est pas un nouveau langage de programmation, mais une nouvelle façon d’utiliser les standards existants. AJAX est basé sur JavaScript et HTTP. LemanOS est construit sur AJAX, avec quelques couches standards supplémentaires

Appel AJAX aynchrone XMLHttpRequest Page HTML objet AJAX (new) Javascript XMLHttpRequest objet AJAX (new) Boutons appel Serveur callback Le callback fonctionne exactement comme le timeout. Il appelle une fonction désignée par l’appelant.

Appel AJAX synchrone XMLHttpRequest Boutons Page HTML objet AJAX (new) Javascript bloqué appel Serveur retour L’exécution de l’envoi fonctionne exactement comme un appel de méthode simple.

Côté serveur Commande HTTP http://epfl.ch/course/view.php?id=376 adressant des fichiers HTML des cgi, des servlets, des asp (Microsoft) ou … L’appelant ne peut pas savoir par l’analyse des messages si ce sont des fichiers qui sont retournés ou des programmes qui répondent

Côté navigateur On peut traiter la réponse en l’interprétant comme une structure XML: http_request = new XMLHttpRequest() . . . xml = http_request.responseXML xml.getElementsByTagName("aaaa")[0] .firstChild.nodeValue ou comme …

Côté navigateur ou comme une structure Text: http_request = new XMLHttpRequest() . . . x = http_request.responseText document.getElementById("Display") .innerHTML = x

<. xml version='1. 0' encoding='UTF-8' <?xml version='1.0' encoding='UTF-8'?> <data>     <aaaa>         mm mm        <bbbb>b111         </bbbb> nn         <bbbb>b222         </bbbb> pp         <bbbb>b333         </bbbb>     </aaaa>     <aaaa>         <cccc>c111         </cccc>         <cccc>c222 . . . Arbre XML <data> \nspace <aaaa> <aaaa> mm mm <bbbb> b111 nn <bbbb> b222 pp <bbbb> b333 <cccc> c111 <cccc> c222

Lecture d’un arbre XML <?xml version='1.0' encoding='UTF-8'?> <data>     <aaaa>         mmmm         <bbbb>b111         </bbbb>         <bbbb>b222         </bbbb>         <bbbb>b333         </bbbb>     </aaaa>     <aaaa>         <cccc>c111         </cccc>         <cccc>c222 . . . xml.getElementsByTagName("aaaa")[0] .firstChild.nodeValue: mmmm xml.getElementsByTagName("bbbb")[1] .lastChild.nodeValue: b222 xml.getElementsByTagName(“aaaa")[0] .getElementsByTagName(“bbbb")[2] .firstChild.nodeValue: b333 http://lti.epfl.ch/AJAX

Affichage de l’arbre XML function print(indent, t) {     if (t.nodeValue != undefined) { // soit affiche un nœud         txt.push(indent + t.nodeValue)     } else { // soit parcourt les enfants         txt.push(indent +"\240--\240"+ "<" + t.tagName +">")         for (var j=0; j<t.childNodes.length; j++) {             print(indent+"\240\240\240\240", t.childNodes[j]) }   }   } 

Asynchronous call function makeRequest(type, alertFunction) { // . . .        http_request.onreadystatechange = function() {         alertFunction(http_request)  // calls the user-defined function     }     http_request.open('GET', URL, true)     http_request.send(null) } asynchronous // user-defined function var alertContents = function (http_local_request) {          document.getElementById("Display").innerHTML  = http_local_request.responseText }      makeRequest("text.html", alertContents) // On return, calls alertContent() to display returned value

Appels synchrone - asynchrone      // . . .      DataBaseService.query(database.readyQuery,{          callback: database.queryBack,          errorHandler:database.handleDBError,          async: false      })      if (database.error != null) {          throw database.error      }      return database.data } /**  * Call back function, just stores the result for the synchronous function  */ database.data = null database.queryBack = function (data) {     database.data = data } query queryBack

Création d’un arbre XML Ecrire un arbre est beaucoup plus facile que le lire, il suffit de concaténer les éléments de texte: txt = [ ] txt.push("<?xml version='1.0' encoding='UTF-8'?>”) txt.push("<data>") txt.push("<aaaa>" + uneValeur) . . . File.write("toto.xml", txt.join(”\n”))