Plusieurs façons de communiquer AJAX? Communication, manière facile. AJAX en jquery



Documents pareils
XML par la pratique Bases indispensables, concepts et cas pratiques (3ième édition)

Langage HTML (2 partie) <HyperText Markup Language> <tv>lt La Salle Avignon BTS IRIS</tv>

Thierry BOULANGER. par la pratique. Bases indispensables Concepts et cas pratiques XML. 3 ième édition. Nouvelle édition

Programmation Web. Madalina Croitoru IUT Montpellier

XML : documents et outils

Petite définition : Présentation :

INTERNET est un RESEAU D ORDINATEURS RELIES ENTRE EUX A L ECHELLE PLANETAIRE. Internet : interconnexion de réseaux (anglais : net = réseau)

Autour du web. Une introduction technique Première partie : HTML. Georges-André SILBER Centre de recherche en informatique MINES ParisTech

DOM - Document Object Model

Formation : WEbMaster

NFA016 : Introduction. Pour naviguer sur le Web, il faut : Naviguer: dialoguer avec un serveur web

Document Object Model (DOM)

4. SERVICES WEB REST 46

CRÉER, ROUTER ET GÉRER UNE NEWSLETTER, UN ING

Devenez un véritable développeur web en 3 mois!

Programmation Internet Cours 4

Gestion Électronique de Documents et XML. Master 2 TSM

BES WEBDEVELOPER ACTIVITÉ RÔLE

Technologies Web. Ludovic Denoyer Sylvain Lamprier Mohamed Amine Baazizi Gabriella Contardo Narcisse Nya. Université Pierre et Marie Curie

Installation d un serveur HTTP (Hypertext Transfer Protocol) sous Débian 6

XML, PMML, SOAP. Rapport. EPITA SCIA Promo janvier Julien Lemoine Alexandre Thibault Nicolas Wiest-Million

Dans nos locaux au 98 Route de Sauve NÎMES. Un ordinateur PC par stagiaire, scanner, imprimante/copieur laser couleur

WEB & DÉVELOPPEMENT LES BASES DU WEB LE LANGAGE HTML FEUILLES DE STYLES CSS HISTORIQUE D INTERNET ET DU WEB LES DIFFÉRENTS LANGAGES

Le stockage local de données en HTML5

Magento. Magento. Réussir son site e-commerce. Réussir son site e-commerce BLANCHARD. Préface de Sébastien L e p e r s

L3 informatique TP n o 2 : Les applications réseau

Ajax, RIA et HTML Prise en charge d Ajax

Faculté de Génie Chaire industrielle en infrastructures de communication. La technologie XML. Wajdi Elleuch

Les outils de création de sites web

Internet. DNS World Wide Web. Divers. Mécanismes de base Exécution d'applications sur le web. Proxy, fire-wall

les techniques d'extraction, les formulaires et intégration dans un site WEB

Qu'est-ce que XML? XML : Extensible Markup Language. Exemple de document SGML SGML

INFORMATIQUE & WEB. PARCOURS CERTIFICAT PROFESSIONNEL Programmation de sites Web. 1 an 7 MODULES. Code du diplôme : CP09

Application Web et J2EE

Module http MMS AllMySMS.com Manuel d intégration

Chapitre IX. L intégration de données. Les entrepôts de données (Data Warehouses) Motivation. Le problème

Module BD et sites WEB

Les sites Internet dynamiques. contact : Patrick VINCENT pvincent@erasme.org

Echosgraphik. Ce document sert uniquement à vous donner une vision sur ma manière de travailler et d appréhender un projet

HTML, CSS, JS et CGI. Elanore Elessar Dimar

Les grandes facettes du développement Web Nicolas Thouvenin - Stéphane Gully

HTML. Notions générales

Architecture Orientée Service, JSON et API REST

Module BDWEB. Maîtrise d informatique Cours 9 - Xquery. Anne Doucet. anne.doucet@lip6.fr


Architectures Web Services RESTful

Hébergement de site web Damien Nouvel

FileMaker Server 12. publication Web personnalisée avec XML

TP JAVASCRIPT OMI4 TP5 SRC

CHAPITRE 11. Temps réel Remy Sharp

Systèmes d'informations historique et mutations

< Atelier 1 /> Démarrer une application web

Programmation Internet

ASP.NET MVC 4 Développement d'applications Web en C# - Concepts et bonnes pratiques

Serveur d'application Client HTML/JS. Apache Thrift Bootcamp

Point sur les solutions de développement d apps pour les périphériques mobiles

SII Stage d informatique pour l ingénieur

LANGAGUE JAVA. Public Développeurs souhaitant étendre leur panel de langages de programmation

Les services usuels de l Internet

WordPress Référencement naturel (SEO) Optimiser. son référencement. Daniel Roch. Préface d Olivier Andrieu

<?xml version="1.0" encoding="iso " standalone="yes"?>

Développement d'applications Web HTML5 L'art et la manière avec Visual Studio 2015 et TFS

Intégrateur Web HTML5 CSS3

COMPRENDRE L ARCHITECTURE DES WEB SERVICES REST. Amosse EDOUARD, Doctorant

Veille technologique

TIC. Réseau informatique. Historique - 1. Historique - 2. TC - IUT Montpellier Internet et le Web

Projet 2. Gestion des services enseignants CENTRE D ENSEIGNEMENT ET DE RECHERCHE EN INFORMATIQUE. G r o u p e :

Rapport de Stage Développement d un module Web pour le Portail Olympe 02 septembre 2010

Diffuser un contenu sur Internet : notions de base... 13

HTTP. Technologies du Web. Programmation Web côté serveur. Mastère spécialisé Management et nouvelles technologies, 16 novembre 2009

Les architectures 3-tiers Partie I : les applications WEB

Présentation du Framework BootstrapTwitter

Théorie : internet, comment ça marche?

AJAX. (Administrateur) (Dernière édition) Programme de formation. France, Belgique, Suisse, Roumanie - Canada

XML et DOM. Matériel de cours. mars 1999 version 0.3 dernière modification: 24/3/99

LEA.C5. Développement de sites Web transactionnels

Éléments de programmation et introduction à Java

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

Activité sur Meteor. Annexe 1 : notion de client-serveur et notion de base de données

3W Academy Programme de Formation Développeur Intégrateur web Total : 400 heures

Master d Informatique Corrigé du partiel novembre 2010

Principales failles de sécurité des applications Web Principes, parades et bonnes pratiques de développement

Le Web de Données Dan VODISLAV Université de Cergy-Pontoise Master Informatique M2 Plan

FileMaker Server 11. Publication Web personnalisée avec XML et XSLT

Développement des Systèmes d Information

Sana Sellami. Licence Professionnelle SIL

Formation Website Watcher

La Clé informatique. Formation Internet Explorer Aide-mémoire

La base de données XML exist. A. Belaïd

Optimiser pour les appareils mobiles

L envoi d un formulaire par courriel. Configuration requise Mail Texte Mail HTML Check-list

Rafraichissement conditionné d'une page en.net

Technologies pour Web Services faciles : REST, JSON

Serveur d Applications Web : WebObjects

SYSTÈMES DE PUBLICATION POUR L INTERNET. Beatep Marie-France Landréa - Observatoire de Paris

WordPress Référencement naturel (SEO) Optimiser. son référencement. Daniel Roch. Préface d Olivier Andrieu

PHP 5.4 Développez un site web dynamique et interactif

Technologies du Web. Ludovic DENOYER - ludovic.denoyer@lip6.fr. Février 2014 UPMC

Transcription:

Programmation web AJAX Jean-Christophe Dubacq IUT de Villetaneuse S3 2013 AJAX A Jean-Christophe Dubacq (IUTV) Programmation web S3 2013 1 / 33 Le modèle classique Jean-Christophe Dubacq (IUTV) Programmation web S3 2013 4 / 33 La transition Modèle de l aller-retour Requête synchrone : attente de la réponse avant de continuer Temps d attente important : limitation de l interactivité Trafic important : page rechargée Site web : pas d interaction, travail à sens unique. L application web : session conservée qui permet un travail interactif (formulaires, pages personnalisées) L application client : une page chargée, pas de changement de page, application interactive avec l utilisateur. Communication avec le serveur? Serveur Internet Navigateur GET /toto.html 200 OK Aff. GET /ajax.php 200 OK Aff. Utilisateur toto.html Action sur la page Jean-Christophe Dubacq (IUTV) Programmation web S3 2013 5 / 33 Jean-Christophe Dubacq (IUTV) Programmation web S3 2013 6 / 33

Plusieurs façons de communiquer AJAX? Inclusion d éléments a posteriori dans la page : client vers serveur Analyse de l élément inclus (iframe)... bidouillage! Création de l API XMLhttprequest ; non uniformément adoptée Utilisation de ActiveX sous Windows Portabilité de XMLHttpRequest 1 function getxmlhttprequest() { 2 var xrequest = null; 3 if (window.xmlhttprequest) { 4 xrequest= new XMLHttpRequest(); // Navigateur moderne 5 } else if (typeof ActiveXObject!= "undefined") { 6 xrequest= new ActiveXObject("Microsoft.XMLHTTP"); // Internet Explorer 7 }; 8 return xrequest; 9 } Asynchronous Javascript And XML Asynchrone : découplage requête/réponse Javascript : vous savez, maintenant XML : un des langages de communication entre client et serveur. Maintenant, il existe une alternative. AJAX B Jean-Christophe Dubacq (IUTV) Programmation web S3 2013 7 / 33 Jean-Christophe Dubacq (IUTV) Programmation web S3 2013 8 / 33 Communication, manière facile Utilisation de jquery : $.ajax (méthode de jquery) Création de trois callbacks pour traiter en asynchrone les données 1 $.ajax({ 2 url: "test.php", 3 type: "GET", 4 success: function(){console.log( ok );}, 5 error: function() {console.log( epic fail );}, 6 complete: function() {console.log( fini );} 7 }) complete[highlightergreen] est appelé tout le temps, success[highlightergreen] ou error[highlightergreen] seulement si nécessaire. Jean-Christophe Dubacq (IUTV) Programmation web S3 2013 10 / 33 Jean-Christophe Dubacq (IUTV) Programmation web S3 2013 11 / 33

Récupération d informations L objet XHR et jqxhr 1 $.ajax({ 2 url: "test.php", 3 success: function(data) {console.log( ok );} 4 }) 1 $.ajax({ 2 url: "test.php", 3 success: function(data,textstatus,x) { 4 $( #truc ).text(data);} 5 }) Objet créé en réponse aux requêtes $.ajax ou new XMLHttpRequest(). Actualisé en continu selon l évolution de la réception de la requête jquery : jqxhr object, enrichi par quelques méthodes Hérite alors des deferred objects AJAX C Jean-Christophe Dubacq (IUTV) Programmation web S3 2013 12 / 33 L objet XHR et jqxhr (2) Jean-Christophe Dubacq (IUTV) Programmation web S3 2013 13 / 33 Les raccourcis Propriétés javascript X.readyState : 0, 1, 2 ou 3 selon l avancée, X.onreadystatechange, X.abort() X.status, X.statusText : "404", "not found"... X.getAllResponseHeaders() (et d autres) Propriétés jquery X.overrideMimeType() pour changer l interprétation des données X.done(), X.fail(), X.always() : extension de X.success() et compagnie $.get est un raccourci qui prend jusqu à 4 éléments url, data, success et datatype (voir plus loin pour celui-ci) et exécute une requête GET $.post est un raccourci qui prend jusqu à 4 éléments url, data, success et datatype (voir plus loin pour celui-ci) et exécute une requête POST $.getscript est un raccourci qui prend jusqu à deux éléments url et success et exécute le javascript renvoyé à l adresse URL (et ensuite, la fonction success) Chargement a posteriori dans le DOM : $.load() Attaché à un élément du DOM Équivalent à un X.innerHTML=ce qui a été renvoyé par la requête Jean-Christophe Dubacq (IUTV) Programmation web S3 2013 14 / 33 Jean-Christophe Dubacq (IUTV) Programmation web S3 2013 15 / 33

Le réglage datatype Les callbacks utilisés avec jquery reconnaissent «automatiquement» le type de données utilisé pour renvoyer les données. Deux grands formats en compétition : JSON, XML Autre formats : pur texte, script, JSON+script (JSONP) Vous ne devriez jamais avoir besoin de le préciser manuellement Identification par le type MIME envoyé par le serveur AJAX D Jean-Christophe Dubacq (IUTV) Programmation web S3 2013 17 / 33 Le format JSON Jean-Christophe Dubacq (IUTV) Programmation web S3 2013 18 / 33 json.org Utilisable directement en javascript À lire par JSON.parse() : JSON.parse( {"a":"3","b":[0,2,"4"]} ) Sera vu en détail plus loin Proche du langage XML, avec des balises et attributs libres Très facile à interpréter dans beaucoup de langages Plus verbeux que le JSON, en perte de vitesse Jean-Christophe Dubacq (IUTV) Programmation web S3 2013 19 / 33 Jean-Christophe Dubacq (IUTV) Programmation web S3 2013 20 / 33

Du côté PHP Interprétation mode texte : split, implode Interprétation mode JSON : json_encode, json_decode, AJAX E Jean-Christophe Dubacq (IUTV) Programmation web S3 2013 21 / 33 XML : Extensible Markup Language langage de balisage extensible Jean-Christophe Dubacq (IUTV) Programmation web S3 2013 23 / 33 Des données structurées Comme HTML, XML est un langage de balisage HTML possède un jeu limité de balises, qui sont parfois orientées présentation (titre, paragraphe, image, lien hypertexte, etc.) Au contraire, XML permet de créer ses propres balises pour représenter toutes les informations que l on souhaite décrire 1 <CINEMA> 2 <NOM>Epée de Bois</NOM> 3 <ADRESSE>100, rue Mouffetard</ADRESSE> 4 <METRO ligne="6">censier</metro> 5 </CINEMA> document plein texte, lisible par un humain C est un avantage, c est aussi un inconvénient sous forme d arbre (comme en HTML) Arbre bien formé (respect du parenthèsage) Respect de la DTD Jean-Christophe Dubacq (IUTV) Programmation web S3 2013 24 / 33 Jean-Christophe Dubacq (IUTV) Programmation web S3 2013 25 / 33

La syntaxe La DTD Déclaration XML :<?xml version="1.0"encoding="utf 8"?> Encodage facultatif, mais très recommandé Contient un élément racine déterminé par la DTD Toute balise ouverte doit être fermée Respect de la casse Bonne imbrication Attributs avec des quotes (simples ou doubles) (\&\#39 et \&\#34) Définition DTD La DTD définit le nom, l imbrication, l ordre des balises et les attributs associés. Une DTD va définir des éléments, des attributs et des entités. C est une déclaration d un DOCTYPE, suivi de déclarations ELEMENT, ATTLIST et ENTITY. 2 <!ELEMENT CINEMA (NOM,ADRESSE,METRO+)> 3 <!ELEMENT NOM (#PCDATA)> 4 <!ELEMENT ADRESSE (#PCDATA)> 5 <!ELEMENT METRO (#PCDATA)> 6 <!ATTLIST METRO ligne CDATA #REQUIRED> Il est aussi possible d utilise XML Schema (voir wikipedia pour une courte introduction). AJAX F Jean-Christophe Dubacq (IUTV) Programmation web S3 2013 26 / 33 Les DTD en 3 mots Jean-Christophe Dubacq (IUTV) Programmation web S3 2013 27 / 33 Quelques précisions On distingue les PCDATA des CDATA. Les PCDATA sont analysées par le parseur, pas les CDATA. Élément : <!ELEMENT nom element (contenu element)> Le contenu peut être du texte (PC ou C), vide (empty), n importe quoi (ANY) ou un ou plusieurs éléments spécifiques. On utilise +*? pour les quantificateurs. On utilise <!ENTITY auteur "J C Dubacq"> pour définir une entité. Le contenu textuel est ensuite utilisé par &auteur;. On utilise <!ATTLIST nom element nom attribut contenu spécifs> Les types de contenu sont : CDATA, PCDATA, des chaînes (a b c) Les spécifications sont : #REQUIRED, #FIXED, #IMPLIED ou une valeur par défaut. Pour ne pas préciser l ordre de balises, on met une * derrière le contenu de l élément. Il existe deux types d attributs ID et IDREF qui permettent de décrire la relation d unicité des identifiants. Un identifiant est de type ID (et non CDATA), et un appel d identifiant (par exemple href) est un IDREF. NMTOKEN est presque synonyme de CDATA, mais restreint le texte à un nom valide en XML. Attribut ou sous-élément On peut choisir de faire de certains attributs des sous-élément (par exemple head et title). Il n y a pas de méthode universelle. Si les deux sont envisageables, en XML, on préfèrera souvent le sous-élément. Jean-Christophe Dubacq (IUTV) Programmation web S3 2013 28 / 33 Jean-Christophe Dubacq (IUTV) Programmation web S3 2013 29 / 33

Utiliser une DTD Qui utilise le XML? 2 <!DOCTYPE truc [ 3...définition DTD 4 ]> 5 <truc> 6... 7 </truc> 2 <!DOCTYPE SYSTEM "note.dtd"> 3 <truc>...</truc> Des centaines de langages (RSS, ATOM, XHTML) Format de sauvegarde de fichier pour un grand nombre de fichiers (applications de bureau, SVG,...) Des formats de communication (XML-RPC, SOAP, XMPP) Il existe des API dans la plupart des langages (C, Java, Javascript, Python, PERL, etc.) pour manipuler des données XML sous forme de tableaux associatifs ou d objets. 2 <!ELEMENT truc empty> AJAX G Jean-Christophe Dubacq (IUTV) Programmation web S3 2013 30 / 33 Les flux RSS Jean-Christophe Dubacq (IUTV) Programmation web S3 2013 31 / 33 Utiliser XML depuis jquery Voir démonstration en ligne. Le format d un flux RSS est assez simple. Créer un document XML jquery.parsexml utilise le navigateur pour analyser une chaîne et en faire un document XML qui peut être manipulé comme n importe quel document En particulier on peut le jqobjectifier, et donc le manipuler comme un document HTML. AJAX et XML En fait, la détection du datatype se fait automatiquement, et jquery.parsexml est utilisé sur le résultat renvoyé. Jean-Christophe Dubacq (IUTV) Programmation web S3 2013 32 / 33 Jean-Christophe Dubacq (IUTV) Programmation web S3 2013 33 / 33