D ´eveloppement Web
Javascript et Ajax
Jean-Michel Richer
jean-michel.richer@univ-angers.fr http://www.info.univ-angers.fr/pub/richer
Objectif
Objectif du cours
• revisiter Javascript et les fonctionnalit ´es associ ´ees au langage dans le cadre du d ´eveloppement Web
• une br `eve introduction au langage en guise de rappel est suivie par l’ ´etude de la couche objet
Plan
1 Le Langage Javascript
2 Fonctionnalit ´es du langage
3 La couche Objet en Javascript
Caract ´eristiques du langage
• cr ´e ´e par Netscape en 1995 (LiveScript)
• utilis ´e c ˆot ´e client pour dynamiser les pages web
• langage tr `es particulier (fonctionnel)
• int ´egration d’une couche objet
• utilis ´e aujourd’hui pour cr ´eer des interfaces riches Attention !
Javascript n’est pas un d ´eriv ´e de Java, ce sont deux langages proches par leurs structures de contr ˆole ou leurs syntaxes mais tr `es diff ´erents.
Caract ´eristiques du langage
• cr ´e ´e par Netscape en 1995 (LiveScript)
• utilis ´e c ˆot ´e client pour dynamiser les pages web • langage tr `es particulier (fonctionnel)
• int ´egration d’une couche objet
• utilis ´e aujourd’hui pour cr ´eer des interfaces riches Attention !
Caract ´eristiques du langage
• cr ´e ´e par Netscape en 1995 (LiveScript)
• utilis ´e c ˆot ´e client pour dynamiser les pages web
• langage tr `es particulier (fonctionnel) • int ´egration d’une couche objet
• utilis ´e aujourd’hui pour cr ´eer des interfaces riches Attention !
Javascript n’est pas un d ´eriv ´e de Java, ce sont deux langages proches par leurs structures de contr ˆole ou leurs syntaxes mais tr `es diff ´erents.
Caract ´eristiques du langage
• cr ´e ´e par Netscape en 1995 (LiveScript)
• utilis ´e c ˆot ´e client pour dynamiser les pages web
• langage tr `es particulier (fonctionnel)
• int ´egration d’une couche objet
• utilis ´e aujourd’hui pour cr ´eer des interfaces riches Attention !
Caract ´eristiques du langage
• cr ´e ´e par Netscape en 1995 (LiveScript)
• utilis ´e c ˆot ´e client pour dynamiser les pages web
• langage tr `es particulier (fonctionnel)
• int ´egration d’une couche objet
• utilis ´e aujourd’hui pour cr ´eer des interfaces riches
Attention !
Javascript n’est pas un d ´eriv ´e de Java, ce sont deux langages proches par leurs structures de contr ˆole ou leurs syntaxes mais tr `es diff ´erents.
Caract ´eristiques du langage
• cr ´e ´e par Netscape en 1995 (LiveScript)
• utilis ´e c ˆot ´e client pour dynamiser les pages web
• langage tr `es particulier (fonctionnel)
• int ´egration d’une couche objet
• utilis ´e aujourd’hui pour cr ´eer des interfaces riches
Attention !
ECMAScript
Definition (ECMAScript - ECMA-262)
Le langage a ´et ´e standardis ´e par ECMA en 1996, 1997, on trouve plusieurs implantations :
• JavaScript (Firefox)
• JScript version Microsoft (IE)
Utilisation de Javascript
Utilisation de Javascript
• langage li ´e aux navigateurs
• en dehors des navigateurs : Rhino
Rhino -http://www.mozilla.org/rhino/ • implantation de Javascript en Java
Utilisation de Javascript
Utilisation de Javascript
• langage li ´e aux navigateurs
• en dehors des navigateurs : Rhino
Rhino -http://www.mozilla.org/rhino/
• implantation de Javascript en Java
• rhinonom-fichier.js
Utilisation de Javascript
Utilisation de Javascript
• langage li ´e aux navigateurs
• en dehors des navigateurs : Rhino
Rhino -http://www.mozilla.org/rhino/
• implantation de Javascript en Java
Utilisation de Javascript
Utilisation de Javascript
• langage li ´e aux navigateurs
• en dehors des navigateurs : Rhino
Rhino -http://www.mozilla.org/rhino/
• implantation de Javascript en Java
• rhinonom-fichier.js
Utilisation de Javascript
Utilisation de Javascript
• langage li ´e aux navigateurs
• en dehors des navigateurs : Rhino
Rhino -http://www.mozilla.org/rhino/
• implantation de Javascript en Java
Utilisation de Javascript pour le navigateur
pour le navigateur
• introduction gr ˆace `a la balisescript
• utilis ´e dans la partie<head>ou<body>
Exemple Javascript
1 <!DOCTYPEHTML PUBLIC"-//W3C//DTD HTML 4.01 Transitional//EN"> 2 <html>
3 <head>
4 <title>titre de la page</title>
5 <scripttype="text/javascript"language="javascript"> 6 var texte=’Hello world !’ ;
7 </script>
8 <scripttype="text/javascript"src="fichierexterne.js"></script> 9 </head>
10<body>
11<scripttype="text/javascript"language="javascript"> 12document.write(texte) ;
Fonctionnalit ´es et sp ´ecificit ´es
Sp ´ecificit ´es
Sp ´ecificit ´es li ´ees `a la s ´ecurit ´e
• ne peut pas lire ou ´ecrire dans le syst `eme de fichier de la machine
• ne peut ex ´ecuter de programme externe
Sp ´ecificit ´es
Sp ´ecificit ´es li ´ees `a la s ´ecurit ´e
• ne peut pas lire ou ´ecrire dans le syst `eme de fichier de la machine
• ne peut ex ´ecuter de programme externe
Sp ´ecificit ´es
Sp ´ecificit ´es li ´ees `a la s ´ecurit ´e
• ne peut pas lire ou ´ecrire dans le syst `eme de fichier de la machine
• ne peut ex ´ecuter de programme externe
Les identificateurs
identificateurs
• d ´efinition classique : caract `ere suivi de carat `eres ou chiffres.
• on peut utiliser le caract `ere soulign ´e
Les identificateurs
identificateurs
• d ´efinition classique : caract `ere suivi de carat `eres ou chiffres.
• on peut utiliser le caract `ere soulign ´e
Les identificateurs
identificateurs
• d ´efinition classique : caract `ere suivi de carat `eres ou chiffres.
• on peut utiliser le caract `ere soulign ´e
Structures de contr ˆole
Structures de contr ˆole
Javascript poss `ede les structures de contr ˆole dulangage C:
• if then else
• for,while,do while
• break,continue
• switch
• plus lefor in(foreach) pour les tableaux
Les variables
Variables
Les variables sont caract ´eris ´ees par :
• ce sont des objets
• l’absence de typage statique (typage dynamique)
• elles peuvent ˆetre d ´eclar ´ees `a tout moment
Les variables
Variables
Les variables sont caract ´eris ´ees par :
• ce sont des objets
• l’absence de typage statique (typage dynamique)
• elles peuvent ˆetre d ´eclar ´ees `a tout moment
Les variables
Variables
Les variables sont caract ´eris ´ees par :
• ce sont des objets
• l’absence de typage statique (typage dynamique)
• elles peuvent ˆetre d ´eclar ´ees `a tout moment
Les variables
Variables
Les variables sont caract ´eris ´ees par :
• ce sont des objets
• l’absence de typage statique (typage dynamique)
• elles peuvent ˆetre d ´eclar ´ees `a tout moment
Les fonctions
Fonctions
Les fonctions sont caract ´eris ´ees par :
• ce sont des objets
• elles peuvent ˆetre d ´eclar ´ees `a tout moment
Les fonctions
Fonctions
Les fonctions sont caract ´eris ´ees par :
• ce sont des objets
• elles peuvent ˆetre d ´eclar ´ees `a tout moment
Les fonctions
Fonctions
Les fonctions sont caract ´eris ´ees par :
• ce sont des objets
• elles peuvent ˆetre d ´eclar ´ees `a tout moment
Les fonctions principales
Fonctions principales
• eval(string): ´evalue le code Javascript
• Number(var): convertir en nombre
• String(var): convertir en chaˆıne
• int parseInt(string[,radix]): convertir en entier en fonction de la base
• float parseFloat(string): convertir en r ´eel
• encoreURI(uri)
Utilisation des fonctions principales
Exemple avec des fonctions principales 1 print(parseInt(’ff’,16)) ; // 255 2 3 varstr=’ 256’; 4 varx =1 + str ; 5 print(x) ;// ’1 256’ 6 7 varx =1 +Number(str) ; 8 print(x) ;// 257 9 10print(eval(’2 + 2 * 8 - 3’)) ;// 15 11 12// JSON
13varperson=eval("({prenom : ’Sid’, nom : ’Meyer’})") ; 14print(person) ;// object Object
15print(person.prenom+’ ’+person.nom) ;// Sid Meyer 16
Objets de base
Objets de base en javascript
chacun des objets poss `ede des m ´ethodes propres :
• String • Boolean • Date • Number • Function • Array
D ´eterminer le type d’un objet
l’instructiontypeof
elle permet de d ´eterminer le type d’une variable ou d’un identificateur. Exemple typeof 1 varb=true; 2 vars=’coucou’; 3 vari=10; 4 vark ; 5 vartab=[1,2,3] ; 6 varp=null; 7 varregex=/\w+/ ; 8 functionf(){ } 9 10print(typeofb) ;// boolean 11print(typeofs) ;// string
L’objet Boolean
Boolean
permet de repr ´esenter des valeurs bool ´eeennes 1 attributs : • TRUE • FALSE 2 m ´ethodes : • toSource() • toString()
Utiliser Boolean
Exemple avec Boolean
1 varvrai=Boolean(true) ; 2 varfaux=Boolean() ; 3 varp=Boolean.TRUE ; 4 5 print(vrai) ;// true 6 print(faux) ;// false 7 8 print(vrai.toString()) ; // true 9
10varp=vrai.valueOf() ; 11print(’p=’+p) ;// p=true
L’objet Number
Number
permet de repr ´esenter les nombres entiers et les r ´eels 1 attributs : • MAX VALUE • MIN VALUE • NaN • NEGATIVE INFINITY • POSITIVE INFINITY 2 m ´ethodes : • toSource() • toString(radix)
Utiliser Number
Exemple avec Number
1 varn1=new Number(255) ; // ou n1=255 ; 2 varn2=new Number(1.5) ; // ou n2=1.5 ; 3
4 print(Number.MAX VALUE) ;// 1.7976931348623157e+308 5 print(n1.toString()) ; // 255 6 print(n1.toString(2)) ; // 11111111 7 print(n1.toString(8)) ; // 377 8 print(n1.toString(16)) ; // ff 9 10n1=n1*n2 ; 11print(n1) ; // 382.5 12 13print(n2.toString(16)) ;// 1.8 14print(n2.toFixed(2)) ; // 1.50
L’objet String
String
permet de repr ´esenter les chaˆınes de caract `eres 1 attributs :
• lengthlongueur de la chaˆıne
2 m ´ethodes :
• integer charAt(index)
• String concat(s1,s2,...)
• integer indexOf(search[,fromIndex])
• integer lastIndexOf(search[,fromIndex])
• String slice(begin,end)extraire la sous-chaˆıne • Array split(separator[,limit])
• String substr(start,length)extraire la sous-chaˆıne
L’objet String et les expressions r ´eguli `eres
M ´ethodes en rapport avec les expressions r ´eguli `eres
permet de repr ´esenter les chaˆınes de caract `eres
• Array match(regex)
• Boolean search(regex)
Utiliser String
Exemple avec String
1 print(’coucou’.length) ;// 6 2
3 var text=’papa fume la pipe’; 4 print(text.indexOf(’pa’)) ;// 0 5 print(text.lastIndexOf(’pa’)) ; // 2 6 7 print(text.split(’ ’)) ;// papa,,,,fume,,la,pipe 8 9 print(text.slice(8,-2)) ;// fume la pi 10 11print(text.match(/p\w+/g)) ;// papa,pipe 12
13varnewtext=text.replace(/pipe/,’cigarette’); 14print(newtext) ;// papa fume la cigarette 15
L’objet RegExp
RegExp
permet de repr ´esenter les expressions r ´eguli `eres
• m ´ethodes :
• test(string)retournetruesi il y a correspondance • exec(string)retourne un tableau qui contient les motifs
Rappel des expressions r ´eguli `eres
Expression r ´eguli `ere
• elle peut ˆetre introduite par/.../qo `uqest un qualificateur (g = global, i = insensible `a la casse)
• +au moins une occurrence
• *0 ou plusieurs occurrences
• ()permet d’isoler une sous-expression
• \w caract `ere alphanum ´erique ou caract `ere soulign ´e
• \d chiffre
Utiliser RegExp
Exemple avec RegExp 1 varregex1=/\d+/ ;
2 varregex2=new RegExp("(\\d+)","g") ; 3 varregex3=/(\d+)\/(\d+)\/(\d+)/ ; 4 5 vardob=’30/09/1970’; 6 7 print(dob.match(regex1)) ; // 30 8 print(dob.match(regex2)) ; // 30/09/1970 9 10print(regex2) ;// /(\d+)/g 11 12 13print(regex3.test(dob)) ;// true 14print(regex3.exec(dob)) ;// 30/09/1970,30,09,1970 15
L’objet Math
Math - les attributs
permet de r ´ealiser les calculs complexes
• E: constante d’Euler (2,718)
• LN2: logarithme n ´ep ´erien de 2 (0,693)
• LN10: logarithme n ´ep ´erien 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 carr ´ee de 1/2 (0,707)
L’objet Math
Math - les m ´ethodes • abs
• acos,asin,atan, ,atan2
• ceil,floor
• cos,sin,tan
• exp,log,pow
• min,max
Utiliser Math
Exemple avec Math
1 print(Math.cos(Math.PI)) ;// -1 2 print(Math.sin(Math.PI)) ; //1.2246467991473532e-16 3 4 print(Math.sqrt(2)) ; //1.4142135623730951 5 print(Math.pow(2,10)) ;// 1024 6 7 print(Math.round(Math.sqrt(2))) ; // 1 8 print(Math.random()) ; //0.3946604376730234 9
L’objet Date
Date - les m ´ethodes
permet de repr ´esenter les dates
• Date()
• Date(milliseconds)
• Date(y,m,d)
• getDay(),getMonth(),getYear(),getFullYear()
• getHours(),getMinutes(),getSeconds()
Utiliser Date
Exemple avec Date
1 vartoday=newDate() ;
2 print(today) ;//Fri Feb 13 2009 16 :27 :30 GMT+0100 (GMT+01 :00) 3 print(today.toLocaleDateString()) ; //fevrier 13, 2009 4 print(today.toUTCString()) ;// Fri, 13 Feb 2009 15 :38 :52 GMT
5 print(newDate(1000)) ; // Thu Jan 01 1970 01 :00 :01 GMT+0100 (GMT+01 :00) 6 print(newDate(2009,0,15)) ; // Thu Jan 15 2009 00 :00 :00 GMT+0100 (GMT+01 :00) 7
L’objet Array
Array - attributs et m ´ethodes
permet de repr ´esenter et traiter les tableaux 1 attributs :
• length
2 m ´ethodes :
• Array concat(array1,array2) • string join(string)
• push: ajoute un nouvel ´el ´ement `a la fin • unshift: ajoute un nouvel ´el ´ement au d ´ebut • pop: supprime et retourne le dernier ´el ´ement
L’objet Array
Array - autres m ´ethodes
• Array(n): construit un tableau de longueur n
• Array(n1,...,nk): construit un tableau dont les ´el ´ements sont n1, . . . ,nk
• slice(begin,end): extrait une partie du tableau
• splice(index,howMany,e1, ..., en: ajoute et supprime de nouveaux ´el ´ements
• sort(): tri des ´el ´ements
Utiliser Array
Exemple avec Array 1 vara=[3,8,2,7] ; 2 3 print(a.length) ;// 4 4 print(a.reverse()) ;// 7,2,8,3 5 a.sort() ; print(a) ; // 2,3,7,8 6
7 vara=new Array(1,7,3,7,8,2,1) ; 8 for(iina){ 9 print(i+’ ’+a[i]) ;// 0 1, 1 7, .... 10} 11 12print(a.join(’ ;’)) ; //1 ;7 ;3 ;7 ;8 ;2 ;1 13
14varb=a.slice(2,4) ;print(b) ;// 3,7 15
16a.splice(1,2,20) ; 17print(a) ;// 1,20,7,8,2,1 18
Couche Objet en Javascript
Caract ´eristiques de la couche objet
La couche objet
La mise en oeuvre de la couche objet utilise des m ´ecanismes diff ´erents des autres langages objets. Faire du Javascript Objet est donc tr `esd ´eroutant.
Trois mani `eres diff ´erentes
On peut cr ´eer les objets de 3 mani `eres diff ´erentes
1 utilisation de la classeObjectpuis associer des attributs et fonctions
Caract ´eristiques de la couche objet
La couche objet
La mise en oeuvre de la couche objet utilise des m ´ecanismes diff ´erents des autres langages objets. Faire du Javascript Objet est donc tr `esd ´eroutant.
Trois mani `eres diff ´erentes
On peut cr ´eer les objets de 3 mani `eres diff ´erentes
1 utilisation de la classeObjectpuis associer des attributs et fonctions
Utilisation de la classe Object 1/2
Exemple avec Object 1 // create object
2 person=new Object() ;
3
4 // add properties
5 person.first name=’Joe’;
6 person.last name=’Dalton’;
7
8 // add method
9 person.display=function() {
10 print(this.first name+’ ’+this.last name) ;
Utilisation de la classe Object 2/2
Exemple avec Object (fonction pr ´ed ´efinie) 1 // create object
2 person=new Object() ;
3
4 // add properties
5 person.first name=’Joe’;
6 person.last name=’Dalton’;
7
8 // add predefined function
9 functiondisplay() {
10 print(this.first name+’ ’+this.last name) ;
11 } 12
Utilisation d’un constructeur
Exemple avec constructeur
1 functionPerson(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 } 8
9 person=newPerson(’Joe’,’Dalton’) ;
Utilisation du format JSON (1/3)
Definition (JaSON - JavaScript Object Notation)
1 il s’agit d’un format de donn ´ees (texte) qui permet la s ´erialisation des objets
2 facilit ´e de lecture
3 mise en oeuvre simplifi ´ee (par rapport `a XML) 4 reconnu nativement par Javascript
Utilisation du format JSON (2/3)
Exemple instance JSON 1 varjoe={
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} 13
14joe.display() ; 15
16for(vari=0;i<joe.brothers.length;++i){ 17 print(joe.brothers[i].name) ;
Utilisation du format JSON (3/3)
Format d’ ´echange
Lorsque l’on ´echange des donn ´ees (serveur - client), il n’est pas possible de d ´efinir des fonctions (comme dans l’exemple pr ´ec ´edent).
Objet en tant que tableau associatif
Objet en tant que tableau
un objet javascript est en fait un tableau associatif d’attributs et m ´ethodes identifi ´es par leur nom.
objet et tableau associatif 1 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 }
H ´eritage
H ´eritage
l’h ´eritage au sens orient ´e objet n’existe pas : deux objets appartiennent `a la m ˆeme classe s’ils ont les m ˆemes attributs et m ˆemes m ´ethodes.
h ´eritage
1 functiondisplay() {
2 print(this.first name+’ ’+this.last name) ; 3 }
4
5 functionPerson(fname,lname){ 6 this.first name=fname ; 7 this.last name=lname ; 8 this.display=display ; 9 }
10
11functionEmployee(fname,lname,salary){ 12 this.first name=fname ;
Notion de prototype
Definition (Prototype)
un prototype repr ´esente un ensemble d’attributs et de m ´ethodes qui seront ajout ´es `a l’objet lors de sa cr ´eation.
prototype
1 functionPerson(first,last){ 2 this.first name=first ; 3 this.last name=last ; 4 }
5
6 varjoe=newPerson(’Joe’,’Dalton’) ; 7
8 // you can not use this : 9 // joe.display() ; 10
Fonction en tant qu’objet
Fonction en tant qu’objet
• descendant de la classeObject
• mais ne peut pas poss ´eder d’attribut
Ajax
Ajax
Definition (Ajax - Asynchronous JAvascript and XML)
introduit parJesse James Garretten 2005, r ´eunion de trois technologies afin de cr ´eer des interfaces utilisateur riches (RUI)
• Javascript pour l’interaction c ˆot ´e client
• XMLHttpRequestpour les requ ˆetes asynchrones
• XML pour l’ ´echange de donn ´ees client-serveur
mais repose ´egalement sur
Ajax
Definition (Ajax - Asynchronous JAvascript and XML)
introduit parJesse James Garretten 2005, r ´eunion de trois technologies afin de cr ´eer des interfaces utilisateur riches (RUI)
• Javascript pour l’interaction c ˆot ´e client
• XMLHttpRequestpour les requ ˆetes asynchrones
• XML pour l’ ´echange de donn ´ees client-serveur
Ajax
Definition (XMLHttpRequest - XHR)
• d ´evelopp ´e par Microsoft en 1998 en tant qu’objet ActiveX
• repris par Mozilla en 2002, puis autres navigateurs
• devenu une recommandation du W3C en 2006
• permet d’envoyer une requ ˆete asynchrone au serveur
Ajax
Definition (XMLHttpRequest - XHR)
• d ´evelopp ´e par Microsoft en 1998 en tant qu’objet ActiveX
• repris par Mozilla en 2002, puis autres navigateurs
• devenu une recommandation du W3C en 2006
• permet d’envoyer une requ ˆete asynchrone au serveur
Ajax
Definition (XMLHttpRequest - XHR)
• d ´evelopp ´e par Microsoft en 1998 en tant qu’objet ActiveX
• repris par Mozilla en 2002, puis autres navigateurs
• devenu une recommandation du W3C en 2006
• permet d’envoyer une requ ˆete asynchrone au serveur
Ajax
Definition (XMLHttpRequest - XHR)
• d ´evelopp ´e par Microsoft en 1998 en tant qu’objet ActiveX
• repris par Mozilla en 2002, puis autres navigateurs
• devenu une recommandation du W3C en 2006
• permet d’envoyer une requ ˆete asynchrone au serveur
Ajax
Definition (XMLHttpRequest - XHR)
• d ´evelopp ´e par Microsoft en 1998 en tant qu’objet ActiveX
• repris par Mozilla en 2002, puis autres navigateurs
• devenu une recommandation du W3C en 2006
• permet d’envoyer une requ ˆete asynchrone au serveur
XMLHttpRequest
attributs deXMLHttpRequest
• Status: statut sous forme num ´erique (ex 200 OK, 404 Not Found)
• statusText: statut sous format texte
• readyState: ´etat de l’objet (0=uninitialized, 1=open, 2=sent, 3=receiving, 4=loaded )
• Onreadystatechange: permet d’attacher un gestionnaire d’ ´ev ´enement
XMLHttpRequest
Attention !
lorsque l’on a rec¸u les donn ´ees du serveur et qu’elles sont pr ˆetes `a ˆetre trait ´ees :
• readyState = 4
XMLHttpRequest
m ´ethodes deXMLHttpRequest
• ouverture d’une connexion pour envoi ou r ´eception de
donn ´ees (GET, POST) :open(method,url,async)
• envoi d’une requ ˆete :send(content)
Cr ´eer un objet XMLHttpRequest
Cr ´eer un objet XMLHttpRequest
Le type d’objet d ´epend du navigateur !
XMLHttpRequest
1 functiongetXMLHTTPRequest(){
2 try{
3 req=newXMLHttpRequest() ;
4 }catch(exc1) {
5 try{
6 req=newActiveXObject("Msxml2.XMLHTTP") ;
7 }catch(exc2){
8 try{
9 req=newActiveXObject("Microsoft.XMLHTTP") ;
10 }catch(exc3){
11 req=false;
12 }
13 }
Cr ´eer un objet XMLHttpRequest
Cr ´eer un objet XMLHttpRequest
Le type d’objet d ´epend du navigateur !
XMLHttpRequest 1 functiongetXMLHTTPRequest(){ 2 try{ 3 req=newXMLHttpRequest() ; 4 }catch(exc1) { 5 try{ 6 req=newActiveXObject("Msxml2.XMLHTTP") ; 7 }catch(exc2){ 8 try{
9 req=newActiveXObject("Microsoft.XMLHTTP") ; 10 }catch(exc3){
Utiliser un objet XMLHttpRequest
XMLHttpRequest 1
2 varmy request=getXMLHTTPRequest() ; 3
4 varurl=’get text data.php’; 5
6 my request.open("GET", url,true) ;
7 my request.onreadystatechange=process data ; 8 my request.send(null) ;
9
10functionprocess data(){ 11 if(my request.readyState==4) { 12 if(my request.status==200) { 13 varmy text=my request.responseText ;
14 document.getElementById("text data").innerHTML=my text ; 15 }
16 } 17}
Frameworks Javascript li ´es `a Ajax
Frameworks
Un tr `es grand nombre de frameworks ont ´et ´e d ´evelopp ´es pour le 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)