Académique Documents
Professionnel Documents
Culture Documents
Jérôme CUTRONA
jerome.cutrona@univ-reims.fr
Demande de la page
Traitement
clic
Envoi de la page
Demande de la page
Traitement
Envoi de la page
Texte brut
document.mon_formulaire.saisie.value
= xmlHttp.responseText
Saisie
showHint(str) {
function stateChanged()
xmlHttp = GetXmlHttpObject() ;
{
xmlHttp.onreadystatechange=stateChanged
if (xmlHttp.readyState == 4) { ;
xmlHttp.open("GET",url,true) ;
document.getElementById("txtHint").innerHTML
xmlHttp.send(null) ;
=xmlHttp.responseText ; }
}
Ça ressemble à du HTML où :
on utilise ses propres balises
la syntaxe est rigoureuse
Ce document ne peut pas s’afficher directement
On utilise des d’outils pour manipuler l’information
de ce document
23:25:38 Programmation Web 2013-2014 29
Introduction (ou rappel) XML
HTML XML
Structure orientée présentation Toutes structures, données
Jeu de basiles fini et normalisé Jeu de balises extensible
Rendu graphique dépendant du Pas de présentation directe
navigateur (nécessite une feuille de style)
Réutilisation limitée Exploitation sémantique
Cible : Web Cible : Web, PDF, échange,…
Écriture laxiste Rédaction de contenu
Stockage : Fichier Stockage : Fichier, BD, natif
Aquilon 1 Bobo 3
Aquilon 1 Bobo 3
elements char
value char chars
value , elements
number exp
int e digits
int frac
digits
int exp
digit
int frac exp
digit digits
int e
digit e
digit1-9 digits e+
- digit e-
- digit1-9 digits E
frac E+
E-
. digits
myObject.menu.id 'file'
23:25:39 Programmation Web 2013-2014 48
JavaScript Objet avec prototype.js
prototype.js est une bibliothèque JavaScript
Écrite par Sam Stephenson
http://prototype.conio.net/
Orientée objet
Nombreux tâches pénibles encapsulées
Encapsule AJAX de façon élégante
1800 lignes / 43 Ko
array(document.getElementById("id1"),
document.getElementById("id2"),
…)
$F(id) ≈
document.getElementById("id").value
callback (xmlHttp)
23:25:39 Programmation Web 2013-2014 52
Exemple prototype.js
<html> <head> <title>AJAX avec prototype.js</title>
<script type='text/javascript'
src='prototype-1.4.0.js'></script>
<script type='text/javascript'>
function stateCompleted(remote) {
$("txtHint").innerHTML=remote.responseText ;
}
function showHint(str) {
if (str.length == 0) {
$("txtHint").innerHTML = "" ; return ; }
var ajax = new Ajax.Request("gethint.php",
{ method : "get",
parameters : "q="+str,
onComplete : stateCompleted,
asynchronous : true }) ;
} </script> </head> …
23:25:39 Programmation Web 2013-2014 53
Exemple prototype.js
…
<body>
<form> First Name:
<input type="text" id="txt1"
onkeyup="showHint(this.value)">
</form>
<p>Suggestions: <span id="txtHint"></span></p>
</body>
</html>