====== JavaScript ======
Dans son usage original, JavaScript est un langage qui **s'utilise côté client dans les navigateurs Web**. Dans cet univers, plusieurs usages courants peuvent être considérés :
* Traitements évènementiels : intégrer du **dynamisme dans les interfaces graphiques** pour les rendre réactives en fonction des actions initiées par l'utilisateur (afficher une zone masquée, masquer une zone affichée, produire des notifications, ouvrir des fenêtres enfants, etc.) ;
* Traitements évènementiels : intégrer une **logique de traitement** au plus près de l'utilisateur (contrôle du déroulement, calculs, validation des données saisies dans les formulaires) ;
* Facilitation de la présentation : au moyen de frameworks dédiés (JQuery, Qooxdoo, etc.), offre de **composants graphiques prêts à l'emploi** qui minimisent l'effort et la compétence HTML/CSS ;
===== Architecture =====
Dans une architecture structurée, on prendra soin de stocker le code JavaScript dans des fichiers séparés. La balise HTML script y donnera accès :
S'agissant de fichiers qui seront envoyés sur le client, donc librement accessibles à tout utilisateur, sur le serveur, il peut être envisagé de stocker ces fichiers dans un dossier assez ouvert, quitte à [[https://fr.wikipedia.org/wiki/Offuscation|obfusquer]] le code.
===== Exemples d'utilisation =====
==== Calcul ou validation ====
...
==== Validation à la soumission ====
...
===== Evolutions =====
Par rapport aux usages initiaux de JavaScript, deux évolutions notables sont à relever :
* L'utilisation d'Ajax : [[bloc2:prog:web:ajax|Ajax]] s'inscrit dans la dynamisation du fonctionnement des interfaces ;
* L'utilisation de JavaScript dans des implémentations côté serveur (Node.js et dérivés) qui permet de viser une sorte de langage universel ;