dw_crs6
description
Transcript of dw_crs6
-
Developpement WebJavascript et Ajax
Developpement WebJavascript et Ajax
Jean-Michel [email protected]
http://www.info.univ-angers.fr/pub/richer
25 janvier 2010
1 / 81
-
Developpement WebJavascript et Ajax
Objectif
Objectif du cours revisiter Javascript et les fonctionnalites associees au
langage dans le cadre du developpement Web une bre`ve introduction au langage en guise de rappel est
suivie par letude de la couche objet on termine par une introduction a` AJAX
2 / 81
-
Developpement WebJavascript et AjaxPlan
Plan
1 Le Langage Javascript
2 Fonctionnalites du langage
3 La couche Objet en Javascript
4 Ajax
3 / 81
-
Developpement WebJavascript et AjaxLe Langage Javascript
Caracteristiques du langage
cree par Netscape en 1995 (LiveScript) utilise cote client pour dynamiser les pages web langage tre`s particulier (fonctionnel) integration dune couche objet utilise aujourdhui pour creer des interfaces riches
Attention !Javascript nest pas un derive de Java, ce sont deux langagesproches par leurs structures de controle ou leurs syntaxes maistre`s differents.
4 / 81
-
Developpement WebJavascript et AjaxLe Langage Javascript
Caracteristiques du langage
cree par Netscape en 1995 (LiveScript) utilise cote client pour dynamiser les pages web langage tre`s particulier (fonctionnel) integration dune couche objet utilise aujourdhui pour creer des interfaces riches
Attention !Javascript nest pas un derive de Java, ce sont deux langagesproches par leurs structures de controle ou leurs syntaxes maistre`s differents.
5 / 81
-
Developpement WebJavascript et AjaxLe Langage Javascript
Caracteristiques du langage
cree par Netscape en 1995 (LiveScript) utilise cote client pour dynamiser les pages web langage tre`s particulier (fonctionnel) integration dune couche objet utilise aujourdhui pour creer des interfaces riches
Attention !Javascript nest pas un derive de Java, ce sont deux langagesproches par leurs structures de controle ou leurs syntaxes maistre`s differents.
6 / 81
-
Developpement WebJavascript et AjaxLe Langage Javascript
Caracteristiques du langage
cree par Netscape en 1995 (LiveScript) utilise cote client pour dynamiser les pages web langage tre`s particulier (fonctionnel) integration dune couche objet utilise aujourdhui pour creer des interfaces riches
Attention !Javascript nest pas un derive de Java, ce sont deux langagesproches par leurs structures de controle ou leurs syntaxes maistre`s differents.
7 / 81
-
Developpement WebJavascript et AjaxLe Langage Javascript
Caracteristiques du langage
cree par Netscape en 1995 (LiveScript) utilise cote client pour dynamiser les pages web langage tre`s particulier (fonctionnel) integration dune couche objet utilise aujourdhui pour creer des interfaces riches
Attention !Javascript nest pas un derive de Java, ce sont deux langagesproches par leurs structures de controle ou leurs syntaxes maistre`s differents.
8 / 81
-
Developpement WebJavascript et AjaxLe Langage Javascript
Caracteristiques du langage
cree par Netscape en 1995 (LiveScript) utilise cote client pour dynamiser les pages web langage tre`s particulier (fonctionnel) integration dune couche objet utilise aujourdhui pour creer des interfaces riches
Attention !Javascript nest pas un derive de Java, ce sont deux langagesproches par leurs structures de controle ou leurs syntaxes maistre`s differents.
9 / 81
-
Developpement WebJavascript et AjaxLe Langage Javascript
ECMAScript
Definition (ECMAScript - ECMA-262)Le langage a ete standardise par ECMA en 1996, 1997, ontrouve plusieurs implantations :
JavaScript (Firefox) JScript version Microsoft (IE) ActionScript version Adobe
10 / 81
-
Developpement WebJavascript et AjaxLe Langage Javascript
Utilisation de Javascript
Utilisation de Javascript langage lie aux navigateurs en dehors des navigateurs : Rhino
Rhino - http://www.mozilla.org/rhino/ implantation de Javascript en Java rhino nom-fichier.js utiliser print au lieu de document.write ou alert
11 / 81
-
Developpement WebJavascript et AjaxLe Langage Javascript
Utilisation de Javascript
Utilisation de Javascript langage lie aux navigateurs en dehors des navigateurs : Rhino
Rhino - http://www.mozilla.org/rhino/ implantation de Javascript en Java rhino nom-fichier.js utiliser print au lieu de document.write ou alert
12 / 81
-
Developpement WebJavascript et AjaxLe Langage Javascript
Utilisation de Javascript
Utilisation de Javascript langage lie aux navigateurs en dehors des navigateurs : Rhino
Rhino - http://www.mozilla.org/rhino/ implantation de Javascript en Java rhino nom-fichier.js utiliser print au lieu de document.write ou alert
13 / 81
-
Developpement WebJavascript et AjaxLe Langage Javascript
Utilisation de Javascript
Utilisation de Javascript langage lie aux navigateurs en dehors des navigateurs : Rhino
Rhino - http://www.mozilla.org/rhino/ implantation de Javascript en Java rhino nom-fichier.js utiliser print au lieu de document.write ou alert
14 / 81
-
Developpement WebJavascript et AjaxLe Langage Javascript
Utilisation de Javascript
Utilisation de Javascript langage lie aux navigateurs en dehors des navigateurs : Rhino
Rhino - http://www.mozilla.org/rhino/ implantation de Javascript en Java rhino nom-fichier.js utiliser print au lieu de document.write ou alert
15 / 81
-
Developpement WebJavascript et AjaxLe Langage Javascript
Utilisation de Javascript pour le navigateur
pour le navigateur introduction grace a` la balise script utilise dans la partie ou
Exemple Javascript
1 < !DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">2 3 4 titre de la page5 6 var texte=Hello world!;7 8 9
10 11 12 document.write(texte);13 writecoucou();14 15 16
16 / 81
-
Developpement WebJavascript et AjaxFonctionnalites du langage
Fonctionnalites et specificites
Description rapide
17 / 81
-
Developpement WebJavascript et AjaxFonctionnalites du langage
Specificites
Specificites liees a` la securite ne peut pas lire ou ecrire dans le syste`me de fichier de la
machine ne peut executer de programme externe pas de connexion autre que serveur web
18 / 81
-
Developpement WebJavascript et AjaxFonctionnalites du langage
Specificites
Specificites liees a` la securite ne peut pas lire ou ecrire dans le syste`me de fichier de la
machine ne peut executer de programme externe pas de connexion autre que serveur web
19 / 81
-
Developpement WebJavascript et AjaxFonctionnalites du langage
Specificites
Specificites liees a` la securite ne peut pas lire ou ecrire dans le syste`me de fichier de la
machine ne peut executer de programme externe pas de connexion autre que serveur web
20 / 81
-
Developpement WebJavascript et AjaxFonctionnalites du langage
Les identificateurs
identificateurs definition classique : caracte`re suivi de carate`res ou
chiffres. on peut utiliser le caracte`re souligne on peut egalement utiliser $ (cf frameworks Ajax)
21 / 81
-
Developpement WebJavascript et AjaxFonctionnalites du langage
Les identificateurs
identificateurs definition classique : caracte`re suivi de carate`res ou
chiffres. on peut utiliser le caracte`re souligne on peut egalement utiliser $ (cf frameworks Ajax)
22 / 81
-
Developpement WebJavascript et AjaxFonctionnalites du langage
Les identificateurs
identificateurs definition classique : caracte`re suivi de carate`res ou
chiffres. on peut utiliser le caracte`re souligne on peut egalement utiliser $ (cf frameworks Ajax)
23 / 81
-
Developpement WebJavascript et AjaxFonctionnalites du langage
Structures de controle
Structures de controleJavascript posse`de les structures de controle du langage C :
if then else for, while, do while break, continue switch plus le for in (foreach) pour les tableaux et les exceptions throw, try, catch
24 / 81
-
Developpement WebJavascript et AjaxFonctionnalites du langage
Les variables
VariablesLes variables sont caracterisees par :
ce sont des objets labsence de typage statique (typage dynamique) elles peuvent etre declarees a` tout moment on peut utiliser le mot-cle var pour les declarer
25 / 81
-
Developpement WebJavascript et AjaxFonctionnalites du langage
Les variables
VariablesLes variables sont caracterisees par :
ce sont des objets labsence de typage statique (typage dynamique) elles peuvent etre declarees a` tout moment on peut utiliser le mot-cle var pour les declarer
26 / 81
-
Developpement WebJavascript et AjaxFonctionnalites du langage
Les variables
VariablesLes variables sont caracterisees par :
ce sont des objets labsence de typage statique (typage dynamique) elles peuvent etre declarees a` tout moment on peut utiliser le mot-cle var pour les declarer
27 / 81
-
Developpement WebJavascript et AjaxFonctionnalites du langage
Les variables
VariablesLes variables sont caracterisees par :
ce sont des objets labsence de typage statique (typage dynamique) elles peuvent etre declarees a` tout moment on peut utiliser le mot-cle var pour les declarer
28 / 81
-
Developpement WebJavascript et AjaxFonctionnalites du langage
Les fonctions
FonctionsLes fonctions sont caracterisees par :
ce sont des objets elles peuvent etre declarees a` tout moment on les declare grace au mot cle function
29 / 81
-
Developpement WebJavascript et AjaxFonctionnalites du langage
Les fonctions
FonctionsLes fonctions sont caracterisees par :
ce sont des objets elles peuvent etre declarees a` tout moment on les declare grace au mot cle function
30 / 81
-
Developpement WebJavascript et AjaxFonctionnalites du langage
Les fonctions
FonctionsLes fonctions sont caracterisees par :
ce sont des objets elles peuvent etre declarees a` tout moment on les declare grace au mot cle function
31 / 81
-
Developpement WebJavascript et AjaxFonctionnalites du langage
Les fonctions principales
Fonctions principales eval(string) : evalue le code Javascript Number(var) : convertir en nombre String(var) : convertir en chane int parseInt(string[,radix]) : convertir en entier
en fonction de la base float parseFloat(string) : convertir en reel encoreURI(uri) decodeURI(uri)
32 / 81
-
Developpement WebJavascript et AjaxFonctionnalites du langage
Utilisation des fonctions principales
Exemple avec des fonctions principales
1 print(parseInt(ff,16)); // 25523 var str= 256;4 var x = 1 + str;5 print(x); // 1 25667 var x =1 + Number(str) ;8 print(x); // 2579
10 print(eval(2 + 2 * 8 - 3)); // 151112 // JSON13 var person=eval("({ prenom : Sid, nom : Meyer })");14 print(person); // object Object15 print(person.prenom+ +person.nom); // Sid Meyer1617 var uri=encodeURI(http ://www.site.fr/x\n=1?value=2
-
Developpement WebJavascript et AjaxFonctionnalites du langage
Objets de base
Objets de base en javascriptchacun des objets posse`de des methodes propres :
String Boolean Date Number Function Array RegExp (expression regulie`re)
34 / 81
-
Developpement WebJavascript et AjaxFonctionnalites du langage
Determiner le type dun objetlinstruction typeofelle permet de determiner le type dune variable ou dunidentificateur.
Exemple typeof
1 var b=true;2 var s=coucou;3 var i=10;4 var k;5 var tab=[1,2,3];6 var p=null;7 var regex=/\w+/;8 function f() { }9
10 print(typeof b); // boolean11 print(typeof s); // string12 print(typeof i); // number13 print(typeof f); // function14 print(typeof k); // undefined15 print(typeof tab); // object16 print(typeof dummy); // undefined17 print(typeof p); // object18 print(typeof regex); // function
35 / 81
-
Developpement WebJavascript et AjaxFonctionnalites du langage
Lobjet Boolean
Booleanpermet de representer des valeurs booleeennes
1 attributs : TRUE FALSE
2 methodes : toSource() toString()
36 / 81
-
Developpement WebJavascript et AjaxFonctionnalites du langage
Utiliser Boolean
Exemple avec Boolean
1 var vrai=Boolean(true);2 var faux=Boolean();3 var p=Boolean.TRUE;45 print(vrai); // true6 print(faux); // false78 print(vrai.toString()); // true9
10 var p=vrai.valueOf();11 print(p=+p); // p=true
37 / 81
-
Developpement WebJavascript et AjaxFonctionnalites du langage
Lobjet Number
Numberpermet de representer les nombres entiers et les reels
1 attributs : MAX VALUE MIN VALUE NaN NEGATIVE INFINITY POSITIVE INFINITY
2 methodes : toSource() toString(radix) toFixed(precision) notation avec chiffres apre`s la
virgule
38 / 81
-
Developpement WebJavascript et AjaxFonctionnalites du langage
Utiliser Number
Exemple avec Number
1 var n1=new Number(255) ; // ou n1=255 ;2 var n2=new Number(1.5) ; // ou n2=1.5 ;34 print(Number.MAX VALUE); // 1.7976931348623157e+3085 print(n1.toString()) ; // 2556 print(n1.toString(2)) ; // 111111117 print(n1.toString(8)) ; // 3778 print(n1.toString(16)); // ff9
10 n1=n1*n2;11 print(n1); // 382.51213 print(n2.toString(16)); // 1.814 print(n2.toFixed(2)); // 1.50
39 / 81
-
Developpement WebJavascript et AjaxFonctionnalites du langage
Lobjet StringStringpermet de representer les chanes de caracte`res
1 attributs : length longueur de la chane
2 methodes : integer charAt(index) String concat(s1,s2,...) integer indexOf(search[,fromIndex]) integer lastIndexOf(search[,fromIndex]) String slice(begin,end) extraire la sous-chane Array split(separator[,limit]) String substr(start,length) extraire la
sous-chane String toLowerCase() String toUpperCase()
40 / 81
-
Developpement WebJavascript et AjaxFonctionnalites du langage
Lobjet String et les expressions regulie`res
Methodes en rapport avec les expressions regulie`respermet de representer les chanes de caracte`res
Array match(regex) Boolean search(regex) Boolean replace(regex,newstr or function)
41 / 81
-
Developpement WebJavascript et AjaxFonctionnalites du langage
Utiliser String
Exemple avec String
1 print(coucou.length); // 623 var text=papa fume la pipe;4 print(text.indexOf(pa)); // 05 print(text.lastIndexOf(pa)); // 267 print(text.split( )); // papa,,,,fume,,la,pipe89 print(text.slice(8,-2)); // fume la pi
1011 print(text.match(/p\w+/g)); // papa,pipe1213 var newtext=text.replace(/pipe/,cigarette);14 print(newtext); // papa fume la cigarette1516
42 / 81
-
Developpement WebJavascript et AjaxFonctionnalites du langage
Lobjet RegExp
RegExppermet de representer les expressions regulie`res
methodes : test(string) retourne true si il y a correspondance exec(string) retourne un tableau qui contient les motifs
qui correspondent a` lexpression
43 / 81
-
Developpement WebJavascript et AjaxFonctionnalites du langage
Rappel des expressions regulie`res
Expression regulie`re elle peut etre introduite par /.../q ou` q est un
qualificateur (g = global, i = insensible a` la casse) + au moins une occurrence * 0 ou plusieurs occurrences () permet disoler une sous-expression \w caracte`re alphanumerique ou caracte`re souligne \d chiffre \s un espace ou \t\n\f\v
44 / 81
-
Developpement WebJavascript et AjaxFonctionnalites du langage
Utiliser RegExp
Exemple avec RegExp
1 var regex1=/\d+/;2 var regex2=new RegExp("(\\d+)","g");3 var regex3=/(\d+)\/(\d+)\/(\d+)/;45 var dob=30/09/1970;67 print(dob.match(regex1)); // 308 print(dob.match(regex2)); // 30/09/19709
10 print(regex2); // /(\d+)/g111213 print(regex3.test(dob)); // true14 print(regex3.exec(dob)); // 30/09/1970,30,09,19701516 print(dob.replace(regex3,$3-$2-$1)); // 1970-09-30
45 / 81
-
Developpement WebJavascript et AjaxFonctionnalites du langage
Lobjet Math
Math - les attributspermet de realiser les calculs complexes
E : constante dEuler (2,718) LN2 : logarithme neperien de 2 (0,693) LN10 : logarithme neperien de 10 (2,302) LOG2E : logarithme a` base 2 de E (1,442) LOG10E : logarithme a` base 10 de E (0,434) PI : valeur du nombre PI (3,14159) SQRT1 2 : racine carree de 1/2 (0,707) SQRT2 : racine carree de 2 (1,414)
46 / 81
-
Developpement WebJavascript et AjaxFonctionnalites du langage
Lobjet Math
Math - les methodes abs acos, asin , atan, , atan2 ceil, floor cos, sin, tan exp, log, pow min, max random : retourne une valeur entre 0 et 1 round sqrt
47 / 81
-
Developpement WebJavascript et AjaxFonctionnalites du langage
Utiliser Math
Exemple avec Math
1 print(Math.cos(Math.PI)); // -12 print(Math.sin(Math.PI)); //1.2246467991473532e-1634 print(Math.sqrt(2)); //1.41421356237309515 print(Math.pow(2,10)) ; // 102467 print(Math.round(Math.sqrt(2))) ; // 18 print(Math.random()) ; //0.39466043767302349
48 / 81
-
Developpement WebJavascript et AjaxFonctionnalites du langage
Lobjet Date
Date - les methodespermet de representer les dates
Date() Date(milliseconds) Date(y,m,d) getDay(), getMonth(), getYear(), getFullYear() getHours(), getMinutes(), getSeconds() toGMTString toLocaleString toUTCString
49 / 81
-
Developpement WebJavascript et AjaxFonctionnalites du langage
Utiliser Date
Exemple avec Date
1 var today=new Date();2 print(today); //Fri Feb 13 2009 16 :27 :30 GMT+0100 (GMT+01 :00)3 print(today.toLocaleDateString()); //fevrier 13, 20094 print(today.toUTCString()); // Fri, 13 Feb 2009 15 :38 :52 GMT5 print(new Date(1000)); // Thu Jan 01 1970 01 :00 :01 GMT+0100 (GMT+01 :00)6 print(new Date(2009,0,15)); // Thu Jan 15 2009 00 :00 :00 GMT+0100 (GMT+01 :00)78 print(Date.parse(today.toString())); // 1234539588000
50 / 81
-
Developpement WebJavascript et AjaxFonctionnalites du langage
Lobjet Array
Array - attributs et methodespermet de representer et traiter les tableaux
1 attributs : length
2 methodes : Array concat(array1,array2) string join(string) push : ajoute un nouvel element a` la fin unshift : ajoute un nouvel element au debut pop : supprime et retourne le dernier element shift : supprime et retourne le premier element reverse : inverse lordre des elements
51 / 81
-
Developpement WebJavascript et AjaxFonctionnalites du langage
Lobjet Array
Array - autres methodes Array(n) : construit un tableau de longueur n Array(n1,...,nk) : construit un tableau dont les
elements sont n1, . . . ,nk slice(begin,end) : extrait une partie du tableau splice(index,howMany,e1, ..., en : ajoute et
supprime de nouveaux elements sort() : tri des elements sort(compare function) : tri suivant la fonction
52 / 81
-
Developpement WebJavascript et AjaxFonctionnalites du langage
Utiliser Array
Exemple avec Array
1 var a=[3,8,2,7];23 print(a.length) ; // 44 print(a.reverse()); // 7,2,8,35 a.sort(); print(a) ; // 2,3,7,867 var a=new Array(1,7,3,7,8,2,1);8 for (i in a) {9 print(i+ +a[i]); // 0 1, 1 7, ....
10 }1112 print(a.join( ;)); //1 ;7 ;3 ;7 ;8 ;2 ;11314 var b=a.slice(2,4); print(b) ; // 3,71516 a.splice(1,2,20);17 print(a); // 1,20,7,8,2,11819 function compare(a,b) {20 return a-b;21 }2223 a.sort(compare); print(a) ; // 1,1,2,7,8,20
53 / 81
-
Developpement WebJavascript et AjaxLa couche Objet en Javascript
Couche Objet en Javascript
La couche objet
54 / 81
-
Developpement WebJavascript et AjaxLa couche Objet en Javascript
Caracteristiques de la couche objet
La couche objetLa mise en oeuvre de la couche objet utilise des mecanismesdifferents des autres langages objets. Faire du Javascript Objetest donc tre`s deroutant.
Trois manie`res differentesOn peut creer les objets de 3 manie`res differentes
1 utilisation de la classe Object puis associer des attributset fonctions
2 creation dun constructeur puis dune instance3 creation dune instance grace au format JSON
55 / 81
-
Developpement WebJavascript et AjaxLa couche Objet en Javascript
Caracteristiques de la couche objet
La couche objetLa mise en oeuvre de la couche objet utilise des mecanismesdifferents des autres langages objets. Faire du Javascript Objetest donc tre`s deroutant.
Trois manie`res differentesOn peut creer les objets de 3 manie`res differentes
1 utilisation de la classe Object puis associer des attributset fonctions
2 creation dun constructeur puis dune instance3 creation dune instance grace au format JSON
56 / 81
-
Developpement WebJavascript et AjaxLa couche Objet en Javascript
Utilisation de la classe Object 1/2Exemple avec Object
1 // create object2 person=new Object();34 // add properties5 person.first name=Joe;6 person.last name=Dalton;78 // add method9 person.display=function() {10 print(this.first name+ +this.last name);11 }1213 // use method14 person.display();
57 / 81
-
Developpement WebJavascript et AjaxLa couche Objet en Javascript
Utilisation de la classe Object 2/2Exemple avec Object (fonction predefinie)
1 // create object2 person=new Object();34 // add properties5 person.first name=Joe;6 person.last name=Dalton;78 // add predefined function9 function display() {10 print(this.first name+ +this.last name);11 }1213 person.display=display;1415 person.display();
58 / 81
-
Developpement WebJavascript et AjaxLa couche Objet en Javascript
Utilisation dun constructeur
Exemple avec constructeur1 function Person(first,last) {2 this.first name=first;3 this.last name=last;4 this.display=function() {5 print(this.first name+ +this.last name);6 }7 }89 person=new Person(Joe,Dalton);1011 person.display();
59 / 81
-
Developpement WebJavascript et AjaxLa couche Objet en Javascript
Utilisation du format JSON (1/3)
Definition (JaSON - JavaScript Object Notation)1 il sagit dun format de donnees (texte) qui permet la
serialisation des objets2 facilite de lecture3 mise en oeuvre simplifiee (par rapport a` XML)4 reconnu nativement par Javascript
60 / 81
-
Developpement WebJavascript et AjaxLa couche Objet en Javascript
Utilisation du format JSON (2/3)
Exemple instance JSON
1 var joe={2 "first name" : "Joe",3 "last name" : "Dalton",4 "display" : function() {5 print(this.first name+ +this.last name);6 },7 brothers : [8 { "name" : "Jack", age : 30 },9 { "name" : "Averell", age : 33 },
10 { "name" : "William", age : 31 }11 ]12 }1314 joe.display();1516 for (var i=0;i
-
Developpement WebJavascript et AjaxLa couche Objet en Javascript
Utilisation du format JSON (3/3)
Format dechangeLorsque lon echange des donnees (serveur - client), il nestpas possible de definir des fonctions (comme dans lexempleprecedent).
62 / 81
-
Developpement WebJavascript et AjaxLa couche Objet en Javascript
Objet en tant que tableau associatif
Objet en tant que tableauun objet javascript est en fait un tableau associatif dattributs etmethodes identifies par leur nom.
objet et tableau associatif1 person=new Object();2 person[first name]=Joe;3 person[last name]=Dalton;4 person[display]=function () {5 print(this.first name+ +this.last name);6 }78 person.display();
63 / 81
-
Developpement WebJavascript et AjaxLa couche Objet en Javascript
HeritageHeritagelheritage au sens oriente objet nexiste pas : deux objetsappartiennent a` la meme classe sils ont les memes attributs etmemes methodes.
heritage
1 function display() {2 print(this.first name+ +this.last name);3 }45 function Person(fname,lname) {6 this.first name=fname;7 this.last name=lname;8 this.display=display;9 }
1011 function Employee(fname,lname,salary) {12 this.first name=fname;13 this.last name=lname;14 this.salary=salary;15 this.display=function() {16 print(this.first name+ +this.last name+ +this.salary);17 }18 }19
64 / 81
-
Developpement WebJavascript et AjaxLa couche Objet en Javascript
Notion de prototype
Definition (Prototype)un prototype represente un ensemble dattributs et demethodes qui seront ajoutes a` lobjet lors de sa creation.prototype
1 function Person(first,last) {2 this.first name=first;3 this.last name=last;4 }56 var joe=new Person(Joe,Dalton);78 // you can not use this :9 // joe.display() ;
1011 Person.prototype.first name=x;12 Person.prototype.last name=y;13 Person.prototype.display=function() {14 print(this.first name+ +this.last name);15 }1617 var jack=new Person(Jack,Dalton);18 jack.display();
65 / 81
-
Developpement WebJavascript et AjaxLa couche Objet en Javascript
Fonction en tant quobjet
Fonction en tant quobjet descendant de la classe Object mais ne peut pas posseder dattribut peut posseder dautres fonctions comme methodes
66 / 81
-
Developpement WebJavascript et AjaxAjax
Ajax
Ajax
67 / 81
-
Developpement WebJavascript et AjaxAjax
Ajax
Definition (Ajax - Asynchronous JAvascript and XML)introduit par Jesse James Garrett en 2005, reunion de troistechnologies afin de creer des interfaces utilisateur riches (RUI)
Javascript pour linteraction cote client XMLHttpRequest pour les requetes asynchrones XML pour lechange de donnees client-serveur
mais repose egalement sur DOM CSS
68 / 81
-
Developpement WebJavascript et AjaxAjax
Ajax
Definition (Ajax - Asynchronous JAvascript and XML)introduit par Jesse James Garrett en 2005, reunion de troistechnologies afin de creer des interfaces utilisateur riches (RUI)
Javascript pour linteraction cote client XMLHttpRequest pour les requetes asynchrones XML pour lechange de donnees client-serveur
mais repose egalement sur DOM CSS
69 / 81
-
Developpement WebJavascript et AjaxAjax
Ajax
Definition (XMLHttpRequest - XHR) developpe par Microsoft en 1998 en tant quobjet ActiveX repris par Mozilla en 2002, puis autres navigateurs devenu une recommandation du W3C en 2006 permet denvoyer une requete asynchrone au serveur une fois les donnees recues on met a` jour le DOM
70 / 81
-
Developpement WebJavascript et AjaxAjax
Ajax
Definition (XMLHttpRequest - XHR) developpe par Microsoft en 1998 en tant quobjet ActiveX repris par Mozilla en 2002, puis autres navigateurs devenu une recommandation du W3C en 2006 permet denvoyer une requete asynchrone au serveur une fois les donnees recues on met a` jour le DOM
71 / 81
-
Developpement WebJavascript et AjaxAjax
Ajax
Definition (XMLHttpRequest - XHR) developpe par Microsoft en 1998 en tant quobjet ActiveX repris par Mozilla en 2002, puis autres navigateurs devenu une recommandation du W3C en 2006 permet denvoyer une requete asynchrone au serveur une fois les donnees recues on met a` jour le DOM
72 / 81
-
Developpement WebJavascript et AjaxAjax
Ajax
Definition (XMLHttpRequest - XHR) developpe par Microsoft en 1998 en tant quobjet ActiveX repris par Mozilla en 2002, puis autres navigateurs devenu une recommandation du W3C en 2006 permet denvoyer une requete asynchrone au serveur une fois les donnees recues on met a` jour le DOM
73 / 81
-
Developpement WebJavascript et AjaxAjax
Ajax
Definition (XMLHttpRequest - XHR) developpe par Microsoft en 1998 en tant quobjet ActiveX repris par Mozilla en 2002, puis autres navigateurs devenu une recommandation du W3C en 2006 permet denvoyer une requete asynchrone au serveur une fois les donnees recues on met a` jour le DOM
74 / 81
-
Developpement WebJavascript et AjaxAjax
XMLHttpRequest
attributs de XMLHttpRequest Status : statut sous forme numerique (ex 200 OK, 404
Not Found) statusText : statut sous format texte readyState : etat de lobjet (0=uninitialized, 1=open,
2=sent, 3=receiving, 4=loaded ) Onreadystatechange : permet dattacher un
gestionnaire devenement responseText : reponse du serveur sous forme texte
(HTML ou JSON) responseXML : reponse du serveur sous forme XML
75 / 81
-
Developpement WebJavascript et AjaxAjax
XMLHttpRequest
Attention !lorsque lon a recu les donnees du serveur et quelles sontpretes a` etre traitees :
readyState = 4 Status = 200
76 / 81
-
Developpement WebJavascript et AjaxAjax
XMLHttpRequest
methodes de XMLHttpRequest ouverture dune connexion pour envoi ou reception de
donnees (GET, POST) : open(method,url,async) envoi dune requete : send(content) mettre fin a` la requete : abort()
77 / 81
-
Developpement WebJavascript et AjaxAjax
Creer un objet XMLHttpRequestCreer un objet XMLHttpRequestLe type dobjet depend du navigateur !
XMLHttpRequest
1 function getXMLHTTPRequest() {2 try {3 req=new XMLHttpRequest();4 } catch(exc1) {5 try {6 req=new ActiveXObject("Msxml2.XMLHTTP");7 } catch(exc2) {8 try {9 req=new ActiveXObject("Microsoft.XMLHTTP");
10 } catch(exc3) {11 req=false;12 }13 }14 }15 return req;16 }
78 / 81
-
Developpement WebJavascript et AjaxAjax
Creer un objet XMLHttpRequestCreer un objet XMLHttpRequestLe type dobjet depend du navigateur !
XMLHttpRequest
1 function getXMLHTTPRequest() {2 try {3 req=new XMLHttpRequest();4 } catch(exc1) {5 try {6 req=new ActiveXObject("Msxml2.XMLHTTP");7 } catch(exc2) {8 try {9 req=new ActiveXObject("Microsoft.XMLHTTP");
10 } catch(exc3) {11 req=false;12 }13 }14 }15 return req;16 }
79 / 81
-
Developpement WebJavascript et AjaxAjax
Utiliser un objet XMLHttpRequest
XMLHttpRequest
12 var my request=getXMLHTTPRequest();34 var url=get text data.php;56 my request.open("GET", url, true);7 my request.onreadystatechange=process data;8 my request.send(null);9
10 function process data() {11 if (my request.readyState==4) {12 if (my request.status==200) {13 var my text=my request.responseText;14 document.getElementById("text data").innerHTML=my text;15 }16 }17 }
80 / 81
-
Developpement WebJavascript et AjaxAjax
Frameworks Javascript lies a` Ajax
FrameworksUn tre`s grand nombre de frameworks ont ete developpes pourle Web. Pami les plus connus, on peut notamment citer :
1 Prototype (www.prototypejs.org)2 Scriptaculous (script.aculo.us)3 jQuery (jquery.com)4 Rico (openrico.org)5 Dojo (dojotoolkit.org)6 Google Web Toolkit (Java)
chacun posse`de ses specificites (cf cours 7).
81 / 81
PlanLe Langage JavascriptFonctionnalits du langageLa couche Objet en JavascriptAjax