Académique Documents
Professionnel Documents
Culture Documents
Cours Javascript
Cours Javascript
Le web 2.0
E. Viennet
IUT de Villetaneuse
Universit Paris 13
AJAX
1 / 38
Plan
JavaScript
Exercices JavaScript
AJAX
2 / 38
Le langage JavaScript
AJAX
3 / 38
Bibliographie
AJAX
4 / 38
Lien utiles
Outils et bibliothques
jQuery http://jquery.com
Prototype http://prototype.conio.net
...
Documentation en ligne
AJAX
5 / 38
Gnralits
JavaScript est un langage interprt, normalement embarqu dans un
navigateur web. Ce nest pas du Java interprt (mais la syntaxe ressemble
un peu).
Normalisation : ECMA (http://www.ecma-international.org)
Langage utilis au dpart pour vrifier des formulaires HTML, sest
enrichi de manire dsordonne (mais non libre).
Autres environnement dexcution : Flash (ActionScript, Acrobat
Reader, PhotoShop, ...)
AJAX
6 / 38
AJAX
7 / 38
8 / 38
AJAX
9 / 38
Types de base
Nombres
Chanes de caractres
Boolens
Fonctions
Objets
Array
Null, undefined
AJAX
10 / 38
Nombres
Tous les nombres sont des flottants (pas dentiers), en 64 bits (IEEE 754).
Oprateurs habituels : +, -, /, *, %
Math :
Math.PI, Math.E, ...
Math.abs(x), Math.cos(x), Math.sqrt()
Math.ceil(x), Math.floor(x), Math.round(x)
Math.random()
Conversions : parseInt("123"), parseFloat("3.14")
NaN, Infinity
1/0 == Infinity
NaN + 1 == NaN (fonction: isNaN(x))
AJAX
11 / 38
Chanes de caractres
Squences de caractres.
"Bonjour"
Les chanes sont des objets :
n = "Bonjour".length
Les caractres sont des chanes de longueur 1 :
c = "bruit".charAt(0)
Nombreuses mthodes utiles (voir doc)
"Feu rouge".replace("rouge", "vert")
"Bobo".toUpperCase()
AJAX
12 / 38
AJAX
13 / 38
Variables
Dclaration dune variable :
Utiliser var :
var x;
var pi = 22/7; // approximatif
Toujours utiliser var, sinon la variable est globale, et cest le dbut de la
fin...
Si la variable nest pas initialise, elle est gale undefined.
Oprateurs
+, -, *, /, %
+=, -=, *=, /=
a++, b--, --a, ++a
"Salut " + "Toto" == "Salut Toto"
"3" + 45 == 48
E. Viennet (I.U.T. de Villetaneuse, Paris 13)
AJAX
14 / 38
Strutures de contrles
Comme en C ou Java...
(if, while, do { ... } while (); switch)
Boucle for : for (var i =0; i < 10; i++) { ... }
Exceptions : try/catch/finally
AJAX
15 / 38
Objets
Deux notations quivalentes :
var obj = new Object();
var obj = {}
Accs aux membres (proprits) :
obj.nom = "Toto";
obj["name"] = "Toto";
(notez que "name" peut tre une variable)
Notation :
var obj = {
nom : "Toto";
prenom : "Marcel";
age : 22;
}
E. Viennet (I.U.T. de Villetaneuse, Paris 13)
AJAX
16 / 38
Tableaux (array)
Les tableaux sont juste une classe spciale dobjets. Les cls sont des
nombres (indices).
Autre notation :
var A = [ "Fromage", 3.12,
new Object() ]
Ajout en fin :
A[A.length] = 12;
E. Viennet (I.U.T. de Villetaneuse, Paris 13)
AJAX
17 / 38
Fonctions
AJAX
18 / 38
AJAX
19 / 38
Exercices
Ecrire une page web qui lors de son chargement affiche un message
"Bienvenue" (fentre popup) lors de son chargement ;.
AJAX
20 / 38
AJAX
21 / 38
Inspecteur DOM
AJAX
22 / 38
Cration de nuds
document.createElement( type )
document.createTextNode( text )
element.appendChild( element )
raccourci commode : element.innerHTML
Style CSS
proprits className et style
E. Viennet (I.U.T. de Villetaneuse, Paris 13)
AJAX
23 / 38
AJAX
24 / 38
AJAX
25 / 38
AJAX
26 / 38
AJAX
27 / 38
AJAX
28 / 38
Exercices
1
crire une page XHTML avec un menu rouge, vert, bleu, blanc qui
permette de changer la couleur de fond de la page.
AJAX
29 / 38
Requtes principales :
HTTP GET
HTTP POST
Plusieurs techniques existent (utilisation de frame, iframe), mais la plus
pratique (et moderne) et dutiliser lobjet XMLHTTPRequest.
XMLHTTPRequest existe dans IE, Firefox, Mozilla et Safari, mais diffre
lgrement dun navigateur lautre...
AJAX
30 / 38
AJAX
31 / 38
AJAX
32 / 38
Codes dtats
READY_STATE_UNINITIALIZED=0;
READY_STATE_LOADING=1;
READY_STATE_LOADED=2;
READY_STATE_INTERACTIVE=3;
READY_STATE_COMPLETE=4;
AJAX
33 / 38
AJAX
34 / 38
AJAX
35 / 38
AJAX
36 / 38
Exercices
1
ville
pays
age
crire deux scripts CGI (en bash), lun renvoyant simplement la liste
des noms, lautre le nom, la ville, le pays et lage correspondant un
nom pass en argument (utiliser QUERY_STRING, cut et grep).
Lors du chargement de la page, crer un menu qui permette de
slectionner un nom parmi la liste (la liste sera demande au serveur).
Lorsque lutilisateur choisi un nom dans le menu, afficher les
informations correspondantes cet utilisateur.
AJAX
37 / 38
Conclusion (provisoire)
Nous navons fait queffleurer les bases dAJAX.
En particulier, il faudrait vous familiariser avec lutilisation du XML.
Dans les applications relles, on utilise en gnral un toolkit existant.
Citons en vrac :
Prototype http ://prototype.conio.net
OpenRico http ://openrico.org
Google Web Toolkit http ://code.google.com/webtoolkit/
JSON-RPC http ://json-rpc.org/
Scriptaculous http ://script.aculo.us
http ://www.potix.com/
Mochikit http ://mochikit.com
etc etc ... sujet trs actif en ce moment ...
AJAX
38 / 38