• Aucun résultat trouvé

INF157 - Utilisation des Réseaux Licence 3 Informatique Arnaud Pecher (repris par Damien Magoni)

N/A
N/A
Protected

Academic year: 2022

Partager "INF157 - Utilisation des Réseaux Licence 3 Informatique Arnaud Pecher (repris par Damien Magoni)"

Copied!
37
0
0

Texte intégral

(1)

1/32

INF157 - Utilisation des Réseaux

Licence 3 Informatique

Arnaud Pecher (repris par Damien Magoni)

Bureau 322, Bâtiment A30, LaBRI Université de Bordeaux

Licence 3 Informatique - Bordeaux

Univ Bx 1 (LaBRI) INF157 - Utilisation des Réseaux L3 INFO 1 / 32

(2)

Sommaire

1 Présentation du fonctionnement AJAX

2 DOM

3 TP : tutoriel de Siddh

4 En guise de conclusion

Bibliographie

D. Cabasson,Ajax - une autocomplétion pas à pas G. Donat,Introduction à AJAX er intéraction avec PHP B. W. Perry,Ajax à 200, O’Reilly

N. Pied,Ajax : vos premiers pas dans les nouvelles technologies

(3)

3/32

Plan

1 Présentation du fonctionnement AJAX

2 DOM

3 TP : tutoriel de Siddh

4 En guise de conclusion

Univ Bx 1 (LaBRI) INF157 - Utilisation des Réseaux L3 INFO 3 / 32

(4)

Principes

Comparaison

navigation web ”classique”: navigation de page en page, initiées par l’utilisateur (clics sur hyperliens, soumission de formulaires) ;

AJAX: échanges de données via HTTP entre le navigateur et le serveur, transparentspour l’utilisateur, etrafraichissement de partiesde la page uniquement.

Avantages

interface utilisateur plus conviviale et réactive ; moins de données échangées.

Web 2.0

Utilisation d’AJAX pour de nouveaux usages (clients mail évolués,

(5)

5/32

Ajax : Asynchronous Javascript and XML

AJAX - technologies employées

Asynchrone : envoi de requêtes HTTP, sans attente de la réponse ;

Javascript : initiées par le navigateur ;

XML : contenant des données formatées en XML.

Fondements

l’objet JavaScriptXmlHttpRequestpour la gestion des échanges HTTP ;

le modèle objet des navigateurs de représentation d’une page web :Document Object Model(DOM) pour la gestion d’une partie de la page uniquement ;

Univ Bx 1 (LaBRI) INF157 - Utilisation des Réseaux L3 INFO 5 / 32

(6)

JavaScript et DOM

JavaScript

Langage de programmationinterprété par le navigateur.

Le code Javascript peut être inséré directement dans la section d’en-tête du document ou dans le corps du document :

<SCRIPT type=’text/javascript’>...</SCRIPT>

Desfonctionspeuvent êtreassociées à différents évènements (interaction de l’utilisateur, modifications de la page).

DOM

DocumentObjectModel est uneinterface de programmation(API) pour des documents. Cette interface ressemble étroitement à la structure des documents (XHTML) qu’elle modélise.

(7)

7/32

L’objet XmlHttpRequest : méthodes

Méthodes

open( méthode, url, mode):ouvre une connexion avec le serveur méthode: méthode HTTP qui sera envoyée (GET ou POST) ; url: url du serveur ;

mode: asynchrone (true) ou synchrone (false).

setRequestHeader(nom, val): affecte la valeurvalà l’entête HTTPnomqui sera envoyé ;

send(params):fixe le corps de la requêteHTTP ; abort():abandonde la requête ;

Univ Bx 1 (LaBRI) INF157 - Utilisation des Réseaux L3 INFO 7 / 32

(8)

L’objet XmlHttpRequest : variables

Variables

onreadystatechange:fonction appeléeen cas de changement de la variablereadyState;

readyState:état de l’objet- valeurs possibles : 0:non initialisé;

1:requêteHTTPprête; 2:requêteHTTPenvoyée;

3:réceptionde la réponse HTTPen cours; 4:réceptionde la réponse HTTPterminée.

status:code HTTPde la réponse ;

statusText:messageassocié au code HTTP ; responseText:corpsde la réponse ;

responseXML:corpsde la réponse sous forme dedocument

(9)

9/32

Instanciation de XmlHTTPRequest

Instanciation

L’instanciation de l’objet XmlHTTPRequest nécessite un code spécifique pour Internet Explorer :

Univ Bx 1 (LaBRI) INF157 - Utilisation des Réseaux L3 INFO 9 / 32

(10)

Un premier exemple

Exemple

Le code suivant instancie un objet XmlHTTPRequest lors de l’appui du bouton et affiche ce qu’a retourné le script PHPajaxTest1dans une boite de notification.

Code client

Code php

(11)

11/32

En pratique

A vous de jouer

1 tester le code précédent en récupérant les 3 fichiers :getXhr.js, ajaxEtatsXmlHttpRequest.htmletajaxTest.php;

2 modifier ce code pour afficher dans des boites de notification les états intermédiaires de l’objetXmlHTTPRequest;

3 utiliser un analyseur de trame (commewireshark) pour intercepter le trafic HTTP généré par cette application

Univ Bx 1 (LaBRI) INF157 - Utilisation des Réseaux L3 INFO 11 / 32

(12)

Solution

Solution

(13)

13/32

Plan

1 Présentation du fonctionnement AJAX

2 DOM

3 TP : tutoriel de Siddh

4 En guise de conclusion

Univ Bx 1 (LaBRI) INF157 - Utilisation des Réseaux L3 INFO 13 / 32

(14)

Arbre DOM

(15)

15/32

Variables d’un sommet

Variables

nodeName: nom du sommet ; nodeValue: valeur du sommet ; nodeType: type du sommet.

Univ Bx 1 (LaBRI) INF157 - Utilisation des Réseaux L3 INFO 15 / 32

(16)

Sélection de sommet(s)

Sélection directe

document.getElementById( String id) ;: sélection des sommets par leur identifiant ;

document.getElementsByTagName( String tag) ;: sélection des sommets par leur mot-clef ;

Exemple

var x=document.getElementsByTagName("p");

for (var i=0;i<x.length;i++)

{

// do something with each paragraph }

var y=document.getElementById(’maindiv’).getElementsByTagName("p");

x : tous les paragraphes.

(17)

17/32

Méthodes d’un sommet

Principales méthodes d’un sommet

appendChild(): ajout d’un fils au sommet courant ;

createElement(): création d’un élément à insérer dans l’arbre ; createTextNode(): création d’une feuille contenant du texte ; getAttribute(): obtenir la valeur du sommet courant ;

insertBefore(): insertion élément

Univ Bx 1 (LaBRI) INF157 - Utilisation des Réseaux L3 INFO 17 / 32

(18)

Variables d’un sommet

Principales variables d’un sommet

childNodes: liste des fils du sommet courant ; firstChild: premier fils ;

id: identifiant ;

lastChild: dernier fils ;

nodeName: nom du sommet courant ; parentNode: sommet ;

style: style assodié au sommet ;

(19)

19/32

L’objet Document

Document

L’objet Document représente l’ensemble du document et peut être utilisé pour accéder à n’importe quel élément.

Variables de type collection

Univ Bx 1 (LaBRI) INF157 - Utilisation des Réseaux L3 INFO 19 / 32

(20)

Document : variables

(21)

21/32

Document : méthodes

Univ Bx 1 (LaBRI) INF157 - Utilisation des Réseaux L3 INFO 21 / 32

(22)

DOM & JavaScript : exercice 1

Exercice

Afficher un texte quand rien de spécial ne survient ; le drapeau

français quand la souris est au-dessus du lien "français", et le drapeau anglais quand la souris est au-dessus du lien "english".

URL de démonstration :

http ://membres.lycos.fr/forumstock/tuto/exemple1.html

Source :

http ://www.siteduzero.com/tuto-3-3558-1-xhtml-javascript-et-dom.html

(23)

23/32

Solution

XHTML

<body>

<p id="testbox">If you see an image appearing in the current box when your mouse is over the link below javascript is enabled on your computer</p>

<p class="javascript"><a href="test.html" onmouseover="javascript:flag (1)" onmouseout="javascript:flag(0)">Engish</a> <a href="test.html"

onmouseover="javascript:flag(2)" onmouseout="javascript:flag(0)">

Francais</a></p>

</body>

JavaScript

function flag(type){

if( type == 1 ){//si la variable vaut 1

//Suppression de l’ancien contenu

var paragraphe = document.getElementById("testbox");

var old_contenu = paragraphe.firstChild;

paragraphe.removeChild(old_contenu);

//Ajout du nouveau contenu

var img = document.createElement("img");

img.setAttribute("src","english.jpg");

img.setAttribute("alt","english flag");

paragraphe.appendChild(img);

}

Univ Bx 1 (LaBRI) INF157 - Utilisation des Réseaux L3 INFO 23 / 32

(24)

DOM & JavaScript : exercice 2

Exercice

Faire un formulaire affichant une description du champ sur lequel on clique dans un paragraphe sur la page. URL de démonstration :

http ://membres.lycos.fr/forumstock/tuto/exemple2.html

Source :

http ://www.siteduzero.com/tuto-3-3558-1-xhtml-javascript-et-dom.html

(25)

25/32

Solution

XHTML

<p id="testbox">If you see information appearing in the current box when you click in a text field javascript is enabled on your computer</p>

<div class="javascript">

<form action="test.html" method="post">

<fieldset>

<label>Nom <input type="text" name="nom" onFocus="javascript:infos(1)"

onBlur="javascript:infos(4)" /></label><br />

JavaScript

function infos(number){

if(number == 1){

//Suppression de l’ancien contenu

var paragraphe = document.getElementById("testbox");

var old_contenu = paragraphe.firstChild;

paragraphe.removeChild(old_contenu);

//Ajout de l’information

var info = document.createTextNode("Entrez votre nom de famille.");

paragraphe.appendChild(info);

} else if(number == 4) ...

Univ Bx 1 (LaBRI) INF157 - Utilisation des Réseaux L3 INFO 25 / 32

(26)

Plan

1 Présentation du fonctionnement AJAX

2 DOM

3 TP : tutoriel de Siddh

4 En guise de conclusion

(27)

27/32

A vous de jouer : listes déroulantes liées

But

Créer dans un même formulaire deux listes déroulantes liéesAuteurset Livres: la liste déroulanteLivrescontient la liste de l’auteur sélectionnésans actualisation de la page.

Correspondance auteurs-livres : commandes sql

Univ Bx 1 (LaBRI) INF157 - Utilisation des Réseaux L3 INFO 27 / 32

(28)

Indications

Quelques indications

1 l’objetXmlHTTPRequestutilise la méthodePOSTpour communiquer le choix de l’auteur au script PHP

ajaxTPLivres.php;

2 ceci implique de préciser l’encodage :xhr.SetRequestHeader(

’Content-Type’,’application/x-www-form-urlencoded’);

3 pour la liste déroulantelivre, l’englober dans une balisediv utilisant le styledisplay :inline;

4 ajuster la liste des livres avec

document.getElementById(’livre’).innerHTML = listeLivresoùlisteLivrescontient la réponse du script ajaxTPLivres.php.

(29)

29/32

Liste des livres (serveur)

Univ Bx 1 (LaBRI) INF157 - Utilisation des Réseaux L3 INFO 29 / 32

(30)

Liste des auteurs (client)

(31)

31/32

Plan

1 Présentation du fonctionnement AJAX

2 DOM

3 TP : tutoriel de Siddh

4 En guise de conclusion

Univ Bx 1 (LaBRI) INF157 - Utilisation des Réseaux L3 INFO 31 / 32

(32)

Encapsulation des différents protocoles

Trame d’un service web / en AJAX Ethernet Données

Ethernet: adressage réseau local IP: adressage Internet

TCP: transport fiable pour Internet

HTTP: transport des données pour le Web

du contenu d’une page (en XHTML), générées en PHP ou autre ; des feuilles de style (en CSS) ;

ou d’autres documents (WSDL, XML (AJAX) ...) XML: transport des données structurées (AJAX) ; SOAP: adapté à l’invocation du service (Service Web).

(33)

32/32

Encapsulation des différents protocoles

Trame d’un service web / en AJAX Ethernet IP Données

Ethernet: adressage réseau local IP: adressage Internet

TCP: transport fiable pour Internet

HTTP: transport des données pour le Web

du contenu d’une page (en XHTML), générées en PHP ou autre ; des feuilles de style (en CSS) ;

ou d’autres documents (WSDL, XML (AJAX) ...) XML: transport des données structurées (AJAX) ; SOAP: adapté à l’invocation du service (Service Web).

Univ Bx 1 (LaBRI) INF157 - Utilisation des Réseaux L3 INFO 32 / 32

(34)

Encapsulation des différents protocoles

Trame d’un service web / en AJAX Ethernet IP TCP Données

Ethernet: adressage réseau local IP: adressage Internet

TCP: transport fiable pour Internet

HTTP: transport des données pour le Web

du contenu d’une page (en XHTML), générées en PHP ou autre ; des feuilles de style (en CSS) ;

ou d’autres documents (WSDL, XML (AJAX) ...) XML: transport des données structurées (AJAX) ; SOAP: adapté à l’invocation du service (Service Web).

(35)

32/32

Encapsulation des différents protocoles

Trame d’un service web / en AJAX

Ethernet IP TCP HTTP Données

Ethernet: adressage réseau local IP: adressage Internet

TCP: transport fiable pour Internet

HTTP: transport des données pour le Web

du contenu d’une page (en XHTML), générées en PHP ou autre ; des feuilles de style (en CSS) ;

ou d’autres documents (WSDL, XML (AJAX) ...) XML: transport des données structurées (AJAX) ; SOAP: adapté à l’invocation du service (Service Web).

Univ Bx 1 (LaBRI) INF157 - Utilisation des Réseaux L3 INFO 32 / 32

(36)

Encapsulation des différents protocoles

Trame d’un service web / en AJAX

Ethernet IP TCP HTTP XML Données

Ethernet: adressage réseau local IP: adressage Internet

TCP: transport fiable pour Internet

HTTP: transport des données pour le Web

du contenu d’une page (en XHTML), générées en PHP ou autre ; des feuilles de style (en CSS) ;

ou d’autres documents (WSDL, XML (AJAX) ...) XML: transport des données structurées (AJAX) ; SOAP: adapté à l’invocation du service (Service Web).

(37)

32/32

Encapsulation des différents protocoles

Trame d’un service web / en AJAX

Ethernet IP TCP HTTP XML SOAP Données

Ethernet: adressage réseau local IP: adressage Internet

TCP: transport fiable pour Internet

HTTP: transport des données pour le Web

du contenu d’une page (en XHTML), générées en PHP ou autre ; des feuilles de style (en CSS) ;

ou d’autres documents (WSDL, XML (AJAX) ...) XML: transport des données structurées (AJAX) ; SOAP: adapté à l’invocation du service (Service Web).

Univ Bx 1 (LaBRI) INF157 - Utilisation des Réseaux L3 INFO 32 / 32

Références

Documents relatifs

June: female tree , receptive figs of the second crop (= the crop present on wild female trees), requiring pollination. This phenotype is very similar to typical wild female trees

Ajax n’est pourtant pas exempt de défauts, à commencer par le fait qu’il ne peut fonctionner qu’avec les navigateurs dont l’utilisateur n’a pas désactivé JavaScript, de

Haute École de Gestion de Genève (HEG-GE) Filière Informatique

la couche transport propose 2 protocoles : TCP (Transmission Control Protocol) est un protocole fiable avec connexion, avec contrôle de flux et UDP (User Datagram Protocol) est

• AJAX n’est pas un nouveau langage de programmation, mais une nouvelle façon d’utiliser les standards existants.. • AJAX est basé sur JavaScript

XMLHttpRequest est initialement un composant ActiveX créé en 1998 par Microsoft pour leur applica- tion web Outlook Web Access, puis il a été ajouté à la norme ECMAScript relative

Cliquez ici pour telecharger le

Tuyet-Tram Dang-Ngoc. Fédération de données semi-structurées avec XML. Base de données [cs.DB].z. Université de Versailles-Saint Quentin en Yvelines, 2003.. KpU