INIST CNRS
INIST-CNRS

AJAX & Cie

Novembre 2006

DHTML : Définition

Abréviation de Dynamic HTML.

Ensemble de technique associées à une page HTML pour :

Techniquement, on va utiliser un language de programmation, le Javascript, pour interagir avec le navigateur Web.

Javascript, pourquoi et comment ?

JavaScript est un langage de programmation normalisé (ECMAScript). On le place généralement dans une page HTML ou en liaison avec celle-ci.

Permet de :

DOM pour Document Object Model

Tout les navigateurs traduisent une page HTML en arbre.

La consultation ou la modification de cet arbre en Javascript se fait au travers d'une interface de programmation normalisée nommée DOM.

Javascript et les Frameworks

Javascript est :

Pour simplifier l'usage du Javascript, sont nés des Frameworks Javascript. Ils permettent :

Les Frameworks Javascript 1/2

Il en existe plusieurs que l'on peut divier en 2 groupes :

Le plus utilisé est Prototype, il permet d'enrichir Javascript en proposant plusieurs modules de bases notamment :

Les Frameworks Javascript basé sur Prototype

Il existe plusieurs complèments à Prototype. Ils permettent :

Notions de Javascript indispensables

Utiliser des frameworks nécessite quand même de connaitre un minimun de notions de Javascript :

Les variables en Javascript

Permet de stocker, sous un nom, une ou des valeurs en mémoire.
Les variables possédent un type caractèrisant leur contenu : (chiffre, tableau, chaîne de caractères ...)
Pour utiliser une variable on doit la déclarer :

var une_variable;
var une_autre_variable = 1;
var une_chaine = "de caractere";	
var un_tableau = new Array("donnée 1", "donnée 2", "donnée 3");
var un_autre_tableau = ["donnée 1", "donnée 2", "donnée 3"];
var une_date = new Date();
var un_objet = $('idt');
						

Javascript possède plusieurs objets standards.
Ils permettent de traiter des types complexes (ex : une date, une balise HTML).

Les tests 1/2

On peut tester le contenu d'une variable.
Pour cela on utilise des opérateurs :

De comparaison Logique
  • == égal
  • != différent
  • > plus grand que
  • < plus petit que
  • > = plus grand ou égal
  • < = plus petit ou égal
  • && ET
  • || OU
  • ! NON

Les tests 2/2

Les opérateurs permettent de faire des tests, ils s'utilisent dans des instructions.
L'instruction la plus utile est IF / ELSE

if ( /* CONDITIONS */  ) {
		/* TRAITEMENTS */
}
						

Exemple

if (  (a == b && a >= 1) || (b == 3) ) {
		alert('La condition est vrai !');
}
else {
		alert('La condition est fausse !');
}
						

Les boucles

Certaines variables sont composées de plusieurs valeurs.
Exemple : un tableau à plusieurs lignes.

Il existe plusieurs méthodes pour réaliser des boucles, la plus simple est la boucle FOR.

var un_tableau = new Array("donnée 1", "donnée 2", "donnée 3");

for(i = 0; i < un_tableau.length; i++) {
		alert(un_tableau[i]);
}

// Autre forme d'itération avec Prototype 
un_tableau.each(function(value) {
				alert(value);
});
						

Les fonctions

Les fonctions vont permettre de factoriser et de déporter des traitements.


function ma_fonction(/* ARGUMENTS */)
{
		/* TRAITEMENTS */
}
						

Exemple

function affiche_message(a, b)
{
        var msg = a+" et "+b;  // On concaténe des chaînes de caractères
		alert(msg);        
}
affiche_message("Prototype", "Scriptaculous");
						

Intégration dans une page

On précise l'URL de chaque fichier Javascript.

<html>
  <head>
   <script type="text/javascript" src="prototype.js">
   </script>
   <script type="text/javascript" src="scriptaculous.js">
   </script>
   <script type="text/javascript" src="mes_fonctions.js">
   </script>
 </head>
 <body>
  <script type="text/javascript">
   une_de_mes_fonctions();
   </script>
 </body>
</html>
				
				   

Intégration dans le code HTML 1/2

On peut placer des attributs spécifiques à l'intérieur des balises HTML.

Ces attributs permettent d'intervenir lors des actions de l'internaute.

Plusieurs attributs sont disponnibles :
onclick, onmouseover, onmouseout, onchange, onfocus, onselect, onblur, etc...


<a id="ancre" href="fichier.html" onclick="une_autre_fonction()">Click</a>

<div onmouseover="Element.toggle('ancre')"> ... </div>


						

Intégration dans le code HTML 2/2

Il est conseillé de mettre dans ces attributs HTML seulement des appels de fonctions. Cela permet de déporter les traitements dans un fichier Javascript externe à la page.

Pour déporter un traitement, tout en gardant un lien avec la balise html, on utilisera le mot clé this

Pour désactiver l'action d'origne (s'il y en a une) en ajoutera return false;

// en Javascript
function mafonction(balise) {
    alert(balise.href);
}

//en HTML
>a href="fichier.html" onclick="mafonction(this); return false;"<Click>/a<
            

Utilisation

Apprendre à utiliser la documentation