
Le rôle du JavaScript est donc de manipuler dynamiquement les éléments de la page. Les exemples les plus courants sont le changement d'image au survol (Rollover Images) ou la validation du format des données saisies dans un formulaire avant même de l'avoir envoyé. En effet, inutile de faire une requête HTTP supplémentaire si l'utilisateur entre un email sans arobase (@) : on peut lui demander de le resaisir immédiatement.
Le gros avantage pour l'utilisateur final, c'est qu'un langage côté client permet de réagir instantanément sur l'affichage. Contrairement à un site uniquement basé sur des technologies côté serveur (+ HTML seul), pour lequel la moindre modification nécessitera une requête HTTP et donc un aller-retour serveur impliquant un délai d'attente (de l'ordre de la seconde) et un rafraîchissement de l'écran pas toujours très esthétique.
Que permet le JavaScript sur une page web ?
Le JavaScript est capable de bien plus que de simples interactions :
- Calculs et utilisation d'objets
- Intervention dans les autres frames du même site
- Création d'éléments à la volée (tableaux, formulaires, images... n'importe quel composant HTML en fait)
- Tri alphabétique d'un tableau selon telle ou telle colonne
- Animation d'images (les faire se déplacer, pas uniquement en changer le contenu)
Utilisé conjointement avec un langage côté serveur (PHP, ASP...), vous serez capable d'optimiser l'ergonomie et les fonctionnalités de vos sites. Le rôle des langages côté serveur peut être, en particulier, de mettre à jour des variables JavaScript en fonction d'une base de données.
JavaScript, Java, JScript : comprendre les différences
Le JavaScript initialement développé par Netscape (il s'appelait LiveScript au tout début), ne doit surtout pas être confondu avec le Java développé par Sun et qui n'a pas le même rôle sur Internet.
La version Microsoft du JavaScript s'appelle JScript et est compatible JavaScript. Là, on parle bien du même rôle, mais avec des fonctionnalités supplémentaires qui ne fonctionneront pas sur les navigateurs concurrents.
Compatibilité JavaScript entre navigateurs
C'est là que ça se complique pour le JavaScript... Contrairement aux langages côté serveur qui sont exécutés dans un environnement bien connu (votre serveur, ou celui de votre hébergeur), dans le cas du JavaScript, c'est chez l'utilisateur final que le code est interprété. Et les différents utilisateurs peuvent très bien avoir des configurations très variées (PC/Mac/Unix/..., MSIE/Firefox/Safari/...).
Le problème, c'est que tous les moteurs JavaScript de ces différentes configurations sont légèrement incompatibles... Le gros est commun mais certaines fonctionnalités de base sont différentes.
Il faut donc d'une manière ou d'une autre connaître les spécificités de chaque navigateur que l'on souhaite couvrir... et tester son application (ses pages, son site...) sur plusieurs configurations. Il est très courant de devoir écrire plusieurs fois un algorithme JavaScript adapté à tel ou tel navigateur :
si (Firefox) { faire comme ceci ; }
sinon { faire comme cela ; }
Sécurité et limitations du JavaScript
Qui dit langage côté client... dit exécuté chez l'utilisateur final. Si les navigateurs n'étaient pas sécurisés, cela pourrait présenter de gros risques (piratage, espionnage...) pour l'utilisateur.
Impossible de manipuler des frames d'autres domaines
Dans une URL, le domaine, c'est la partie entre http:// et le slash (/) suivant :
http://www.google.fr/search?q=javascript
La portée d'un script JavaScript est limitée aux pages provenant du même site, le domaine étant un identifiant réseau du serveur hébergeant le site. Ça empêche par exemple un site d'espionner trop facilement les habitudes de navigation d'un utilisateur.
Impossible de manipuler des données système sans autorisation
Il est en particulier impossible de lire ou d'écrire des fichiers sur l'ordinateur de l'utilisateur, ou de faire des appels à des ActiveX non signés, sans autorisation expresse de l'utilisateur.
Note : Ce ne sont pas des limitations du JavaScript lui-même, mais des sécurités ajoutées par les navigateurs.
Ressources pour apprendre le JavaScript
Pour terminer, si vous souhaitez vous y mettre, voici deux ressources recommandées :
- Une référence claire et précise avec exemples sur devguru.com
- Un didacticiel très bien fait sur w3schools.org
Bonne chance et... que le web soit avec vous ! ;o)
NB : Ce qui est expliqué ici est le cas général. Il est également possible d'utiliser le JavaScript côté serveur mais c'est bien plus rare. En fait, le JavaScript est un langage de script générique qui peut être utilisé à bien des fins...