Résumé Théorique M105 Ofppt
Résumé Théorique M105 Ofppt
Résumé Théorique M105 Ofppt
et de la promotion du travail
Direction de la Recherche et Ingénierie de formation
Manuel de cours
1ère Année
Filière :
Développement
Digital
(Tronc commun)
Technicien spécialisé
Direction de la Recherche et L’Ingénierie de Formation
Digital I Infrastructure digitale
Version : 01/12/2021
Concevoir un réseau informatique
5
Remerciements
La DRIF remercie les personnes qui ont contribué à l’élaboration du présent document :
Équipe de conception :
BOUDIAF Saida Digital learning manager/
Project manager
MIHOUBI Fattoum, Cheffe de projet pédagogique/
Ingénieure pédagogique
CROUZOULON Jonathan, Directeur pédagogique/
Chef de projet pédagogique
Équipe de rédaction :
ENAANAI Adil, Assistant Professor in Computer science (
Faculty of science Tetouan)/Enseignant-chercheur en informatique
Équipe de lecture :
RAHMANI Abdelhak, Formateur Animateur au CDC Digital & IA
LAOUIJA Soukaina, Formatrice Animatrice au CDC Digital & IA
EL KHATABI GHIZLANE, Formatrice Animatrice au CDC Digital & IA
Équipe de validation :
RAHMANI Abdelhak, Formateur Animateur au CDC Digital & IA
LAOUIJA Soukaina, Formatrice Animatrice au CDC Digital & IA
EL KHATABI GHIZLANE, Formatrice Animatrice au CDC Digital & IA
Les utilisateurs de ce document sont invités à communiquer à la DRIF et au CDC Digital & IA toutes les remarques
et suggestions afin de les prendre en considération pour l’enrichissement et l’amélioration de ce module.
Programmer en Javascript
1
01 - DÉFINIR LE RÔLE DE JAVASCRIPT DANS LE
SOMMAIRE DÉVELOPPEMENT
Comparer un langage de script avec un langage compilé
Comprendre l’architecture client/serveur
Découvrir l’écosystème de développement
05 - MANIPULER JQUERY
Découvrir jQuery
Découvrir AJAX
MODALITÉS PÉDAGOGIQUES
1 2 3 4 5
LE GUIDE DE LA VERSION PDF DES CONTENUS DU CONTENU DES RESSOURCES
SOUTIEN Une version PDF TÉLÉCHARGEABLES INTERACTIF EN LIGNES
Il contient le est mise en ligne Les fiches de Vous disposez de Les ressources sont
résumé théorique sur l’espace résumés ou des contenus consultables en
et le manuel des apprenant et exercices sont interactifs sous synchrone et en
travaux pratiques formateur de la téléchargeables forme d’exercices asynchrone pour
plateforme sur WebForce Life et de cours à s’adapter au
WebForce Life utiliser sur rythme de
WebForce Life l’apprentissage
12 heures
CHAPITRE 1
Comparer un langage de script avec un
langage compilé
04 heures
CHAPITRE 1
Comparer un langage de script avec un
langage compilé
Différence : Un compilateur convertit le code en code machine (crée un exe) avant l'exécution du programme. L’interpréteur convertit le code en code machine, ligne par
ligne, au moment d’exécution du programme.
Langage compilé
PARTIE 1
Langage interprété
PARTIE 1
Langage de script
Le rôle de l'interpréteur
• Le fonctionnement des langages de script est assuré par l’interpréteur. Son rôle réside dans la traduction des instructions du programme source en code machine.
• S'il y a une erreur dans l'instruction courante, l'interpréteur termine son processus de traduction à cette instruction et affiche un message d'erreur. L'interprète ne
passe à la ligne d'exécution suivante qu'après avoir éliminé l'erreur.
• Un interpréteur exécute directement les instructions écrites dans un langage de script sans les convertir préalablement en code objet ou en code machine.
04 heures
CHAPITRE 2
Comprendre l’architecture client/serveur
L'utilisateur saisit l'URL (Uniform Resource Locator) du site web ou du fichier. Le navigateur demande alors au serveur le DNS (DOMAIN
NAME SYSTEM).
Le navigateur envoie une requête HTTP/HTTPS à l'adresse IP du serveur WEB (fournie par le serveur DNS).
PARTIE 1
Le serveur envoie les fichiers nécessaires du site web (pages html, documents, images, ….).
Le navigateur rend alors les fichiers et le site web s'affiche. Ce rendu est effectué à l'aide de l'interpréteur DOM (Document Object Model),
de l'interpréteur CSS et du moteur JS, collectivement connus sous le nom de compilateurs JIT ou (Just in Time).
Fonctionnement
Le fonctionnement d’un système client/serveur peut être illustré par le schéma suivant :
Client
IHM (pages html) -
navigateur web
3) Le serveur envoie la page HTML générée au client 2) Un langage serveur (comme PHP) accède à la BD
PARTIE 1
Langage serveur
Méthode Rôle
GET Récupération d’une ressource spécifique (fichier html par exemple).
POST Création d’une nouvelle ressource, enregistrement des données d'un formulaire d'inscription...
HEAD Récupération des informations "metadata" d'une ressource spécifique sans le "body« .
PARTIE 1
PUT Met à jour une ressource existante ou en crée une si elle n'existe pas.
• Environnements de développement
• Découverte des librairies appropriées (jQuery, React, Vue JS,
Angular,…)
04 heures
CHAPITRE 3
Découvrir l’écosystème de développement
1. Environnements de développement
2. Découverte des librairies appropriées (jQuery, React, Vue JS,
Angular, …)
03 - Découvrir l’écosystème de développement
Environnements de développement
IntelliJ IDEA CodePen JSFiddle Visual Studio Code Bluefish SUBLIME TEXT 3
VS code offre :
1. Environnements de développement
2. Découverte des librairies appropriées (jQuery, React, Vue
JS, Angular, …)
03 - Découvrir l’écosystème de développement
Découverte des librairies appropriés
Front-end vs back-end
Front-End Back-End
• Le terme "front-end" désigne l'interface utilisateur. • Le terme "back-end" désigne le serveur, l'application et la base de données
• Le front-end est construit en utilisant une combinaison de technologies qui travaillent en coulisses pour fournir des informations à l'utilisateur.
telles que le langage de balisage hypertexte (HTML), JavaScript et les feuilles • La programmation back-end est définie comme la logique informatique d'un
de style en cascade (CSS). site Web ou d'un logiciel, depuis le stockage et l'organisation des données
jusqu'à la création des algorithmes et des séquences logiques complexes qui
fonctionnent, d’une manière transparente, sur le front-end.
• Les langages back-end les plus populaires pour sont Ruby, Python, Java, ASP
.Net et PHP.
3. JQuery
4. Vue.js
48 heures
CHAPITRE 1
Maîtriser la syntaxe javascript et ses
notions fondamentales
12 heures
CHAPITRE 1
Maîtriser la syntaxe javascript et ses
notions fondamentales
Introduction à JavaScript
• Javascript est un langage de scripts qui peut être incorporé aux balises Html. JS est exécuté par le navigateur ;
• Son rôle est d'améliorer la présentation et l'interactivité des pages Web ;
• JavaScript offre des « gestionnaires d'événement » qui reconnaissent et réagissent aux demandes du client (comme les mouvements de la souris, clics sur les touches
du clavier, etc.)
Remarques
<script language="JavaScript">
/* ou // code js*/
</script>
• Méthode 3 : Pseudo-URL
PARTIE 2
Identifiants JavaScript
• Un identifiant en JS correspond au nom d’une variable. Ce nom doit être unique.
• Ces identifiants peuvent être des noms courts (comme x et y) ou bien des noms plus descriptifs (comme note, total, NomComplet, etc.).
• Un identifiant peut contenir des lettres, des chiffres, des traits de soulignement (_) et des signes dollar ($).
• Un identifiant peut commencer par une lettre, un signe $ ou bien un signe _
• JS est sensible à la casse (y et Y sont considérés comme des variables différentes).
• Un identifiant ne peut pas être un mot réservé du langage.
PARTIE 2
Remarques
const PI = 3.141592653589793;
PI = 3.14; // Erreur
PI = PI + 10; // Erreur
const PI ;
PI= 3.14159265359; // Incorrect
PARTIE 2
Portée du bloc : (Block scope) Portée locale : (Function scope) Portée globale : (Global scope)
• En utilisant le mot clé let, les variables • Les variables déclarées dans une fonction • Une variable déclarée en dehors d'une
déclarées à l'intérieur d'un bloc { } ne sont pas JavaScript deviennent LOCALES à la fonction : Ils fonction, devient GLOBAL. Les variables
accessibles depuis l'extérieur du bloc : ne sont accessibles qu'à partir de la fonction. globales sont accessibles de n'importe où dans
un programme JavaScript..
{ let x = 2; } function Test()
// x n'est pas accessible ici {
• En utilisant le mot clé var, les variables
var x = "test1";
déclarées à l'intérieur d'un bloc { } sont let y = "test2";
accessibles depuis l'extérieur du bloc. const z = "test3";
}
{ var x = 2; } //x, y et z ne sont pas
PARTIE 2
Opérateur Signification
+ Addition
- Soustraction
* Multiplication
** Puissance
/ Division
++
PARTIE 2
Incrémentation
-- Décrémentation
x %= 5;
x = x ** y let x = 3;
**= x **= y x %= 2;
x vaut 9
x = x à la puissance y
let x = 1 + 1;
let y = "5" + 1;
PARTIE 2
//x=2
//y="51"
=== Egal à (comparaison de la valeur et du type) let x = 5; let y = "5"; let z=(x===y); //z=false
!== Type ou valeur différente let x = 5; let y = "5"; let z=(x!==y); //z=true
Opérateur Signification
&& ET logique
|| OU logique
! NON logique
instanceof Retourne true si l'objet est une instance de la classe donnée en paramètre console.log(“JavaScript” instanceof String);
Résultat Résultat
Opérateur Signification Exemple Équivalent à
binaire décimal
ET binaire : Renvoie 1 pour chaque position de bits pour laquelle les
& 5&1 0101 & 0001 0001 1
bits correspondants des deux opérandes sont 1
document.write() : Écriture dans le document de window.alert() : Écriture dans une boîte d'alerte console.log() : Écriture dans la console du
sortie HTML navigateur. Cette méthode est pratique pour le
• Utilisée pour afficher des messages à
débogage du code
• Utilisée pour des fins de test. Après le l’utilisateur et aussi pour afficher des données
chargement du document HTML, elle supprime • Utilisée pour afficher des données dans la
le contenu existant. console du navigateur. Cette méthode est
pratique pour le débogage du code.
Impression JavaScript
La méthode window.print() permet d’imprimer le contenu de la fenêtre en cours en appelant le dispositif propre du navigateur.
L’exemple suivant permet d’appeler la méthode « window.print() » suite au clic sur un bouton.
Exemple :
<!DOCTYPE html>
<html>
<body>
<button onclick="window.print()">Imprimer cette page</button>
</body>
</html>
PARTIE 2
Prompt : affiche une boîte de dialogue avec une zone de saisie Les formulaires : les contrôles des formulaires comme la zone <input>
• La méthode prompt (boite d'invite) propose un champ comportant une • Javascript peut récupérer les données de n'importe quel élément html par
entrée à compléter par l'utilisateur avec une valeur par défaut. la méthode : document.getElementById(id) qui prend en paramètre
l’identifiant de l’objet.
• En cliquant sur OK, la méthode renvoie la valeur tapée par l'utilisateur ou la
réponse proposée par défaut. Si l'utilisateur clique sur Annuler (Cancel), la
valeur null est alors renvoyée.
<!DOCTYPE html>
<html>
<body>
var prenom = prompt("Quel est votre prénom?");
<input type="text" id="prenom">
document.write(prenom);
<button
onclick="alert(document.getElementById('prenom')
.value)">Afficher</button>
</body>
PARTIE 2
</html>
Données primitives
Une valeur de données primitive est une valeur de données simple et unique sans propriétés ni méthodes supplémentaires.
L' opérateur typeof permet de renvoyer les types primitifs suivants :
• string
• number
• boolean
• undefined
Exemple :
Données complexes
L’opérateur typeof permet aussi de renvoyer les types complexes suivants :
• Function : pour les fonctions
• Object : renvoyer les objets, les tableaux et null.
Exemple :
Exemple :
PARTIE 2
L'opérateur unaire +
L'opérateur unaire + peut être utilisé pour convertir une variable en nombre :
x.toString()
(123).toString()
(100 + 23).toString()
Méthode Description
• Structures alternatives
• Structures itératives
12 heures
CHAPITRE 2
Maîtriser les structures de contrôle
1. Structures alternatives
2. Structures itératives
02 - Maîtriser les structures de contrôle
Structures alternatives
La déclaration if
L’instruction if est utilisée pour spécifier un bloc de code JavaScript à exécuter si une condition est vraie.
Syntaxe :
if (condition)
{
// bloc d'instructions à executer si la condition est vraie
}
Exemple :
On affiche "Réussi" si la note est supérieure ou égale à 10 :
La déclaration else
L’instruction else est utilisée pour spécifier un bloc de code à exécuter si la condition est fausse.
Syntaxe :
if (condition)
{
// bloc d'instructions à executer si la condition est vraie
}
else
{
// bloc d'instructions à executer si la condition est fausse
}
Exemple :
On affiche "Réussi" si la note est supérieure ou égal à 10, sinon on affiche « Echoué » :
PARTIE 2
L'instruction else if
L’instruction else if est utilisée pour spécifier une nouvelle condition si la première condition est fausse.
Syntaxe :
if (condition1) {
// bloc d'instructions à executer si la condition1 est vraie
} else if (condition2) {
// bloc d'instructions à executer si la condition2 est vraie et la condition1 est fausse
} else {
// bloc d'instructions à executer si la condition2 est fausse
}
Exemple :
if (note >= 10) {
document.write("Réussi")
} else if (note>8) {
PARTIE 2
document.write("rattrapage")
}
else{
document.write("Echoué")
}
L'instruction switch
L'instruction switch est utilisée pour sélectionner un choix parmi plusieurs (pour remplacer les blocs if .. else multiples).
Syntaxe Exemple
1. Structures alternatives
2. Structures itératives
02 - Maîtriser les structures de contrôle
Structures itératives
for (let i = 0; i < 10; i++) for (let i = 0; i < 10; i++)
{ {
if (i === 3) { break; } if (i === 3) { continue; }
text += "The number is " + i + "<br>"; text += "The number is " + i + "<br>";
} }
PARTIE 2
• Fonctions
• Expressions lambdas
• Appels asynchrones (callBack, Promise)
• Gestion des exceptions
12 heures
CHAPITRE 3
Utiliser des fonctions
1. Fonctions
2. Expressions lambdas
3. Appels asynchrones (callBack, Promise)
4. Gestion des exceptions
03 - Utiliser des fonctions
Fonctions
Définition
• Une fonction est définie comme un bloc de code organisé et réutilisable, créé pour effectuer une action unique ;
• Le rôle des fonctions est d’offrir une meilleure modularité au code et un haut degré de réutilisation ;
• Une fonction JavaScript est un ensemble d’instructions qui peut prendre des entrées de l’utilisateur, effectuer un traitement et renvoyer le résultat à l’utilisateur ;
• Une fonction JavaScript est exécutée au moment de son appel.
Retour de la fonction
PARTIE 2
• L’instruction return est utilisée pour renvoyer une valeur (souvent calculée) au programme appelant.
• Lorsque l’instruction return est atteinte, la fonction arrête son exécution.
Appel de fonction
Le code de la fonction est exécuté quand la fonction est appelée selon les cas suivants :
• Lorsqu'un événement se produit (clic sur un bouton par exemple) ;
• Lorsqu'il est invoqué (appelé) à partir d’un autre code JavaScript ;
• Automatiquement (auto-invoqué).
La fonction est appelée en utilisant son nom et, si elle prend des paramètres, en indiquant la liste de ses arguments :
let x = myFunction(4, 3); // La function est appelée, la valeur retournée est affectée à x
function myFunction(a, b) {
PARTIE 2
function myFunction() {
let nom = "Hassan";
// Le code ici peut utiliser la variable "nom"
}
Remarques
PARTIE 2
• Étant donné que les variables locales ne sont reconnues qu'à l'intérieur de leurs fonctions, les variables
portant le même nom peuvent être utilisées dans différentes fonctions.
• Les variables locales sont créées lorsqu'une fonction démarre et supprimées lorsque la fonction est terminée.
1. Fonctions
2. Expressions lambdas
3. Appels asynchrones (callBack, Promise)
4. Gestion des exceptions
03 - Utiliser des fonctions
Expressions lambdas
Exemple 1 :
const variable = () => {
return "ma_variable"
}
console.log(variable()) // "ma_variable"
Exemple 2 :
const variable = (a,b) => {
PARTIE 2
return a*b;
}
console.log(variable(2,3)) // 6
1. Fonctions
2. Expressions lambdas
3. Appels asynchrones (callBack, Promise)
4. Gestion des exceptions
03 - Utiliser des fonctions
Appels asynchrones (callBack, Promise)
Exemple : [https://www.w3schools.com/js/js_callback.asp]
function affichage(s) {
console.log(s);
}
calcul(1, 5, affichage);
Dans l'exemple, « affichage » est le nom d'une fonction qui est passée à la fonction calcul() comme argument.
Attention : ne pas utiliser les parenthèses dans l’appel de la fonction.
Exemple :
Instruction1
Instruction2
Instruction3 //Qui récupère une valeur externe et la mettre dans un
élément HTML (cela prend 5 secondes)
Instruction4
Problème : Le code actuel provoque une attente de 5 secondes avant d’exécuter l'instruction4.
Solution : en utilisant un objet Promise, on peut provoquer l’exécution de l'instruction3 et en même temps continuer l'exécution du programme. Quand l'instruction3
récupère la valeur depuis la ressource externe, elle sera placée dans l'élément de l'interface.
PARTIE 2
• Le constructeur Promise accepte une fonction comme argument. Cette fonction s'appelle l’exécuteur (executor).
• L'exécuteur accepte deux fonctions avec les noms, par convention, resolve() et reject().
PARTIE 2
• À l'intérieur de l'exécuteur, on appelle manuellement la fonction resolve() si l'exécuteur est terminé avec succès et la fonction reject() en cas d'erreur.
Résultat d’exécution : la promesse commence par l'état pending avec la valeur undefined. La valeur promise sera renvoyée ultérieurement une fois la promesse terminée.
PARTIE 2
Après 3 secondes
L'appel de la fonction resolve() bascule l’état de l'objet de promesse vers l'état fulfilled. Si on affecte false à la variable completed on aura le résultat suivant :
PARTIE 2
promiseObject.then(onFulfilled, onRejected);
function makePromise(completed){
return new Promise(function (resolve, reject) {
setTimeout(() => {
if (completed) {
Appel de la fonction makePromise() et invocation de la
resolve("Donnée récupérée"); méthode then() :
} else {
PARTIE 2
3. La méthode finally()
La méthode finally() est utilisée pour exécuter un code quelque soit l’état de la promesse :
getData
.then(
(success) => { getData
console.log(success); .then(success => console.log(success))
calculer(); .catch(reason => console.log(reason))
PARTIE 2
1. Fonctions
2. Expressions lambdas
3. Appels asynchrones (callBack, Promise)
4. Gestion des exceptions
03 - Utiliser des fonctions
Gestion des exceptions
Syntaxe :
try {
//Bloc du code à exécuter
}
catch(err) {
//Bloc du code qui gère l’exception
PARTIE 2
L’utilisation de l’instruction throw avec try et catch permet de contrôler le déroulement du programme et de générer des messages d'erreurs personnalisés.
PARTIE 2
}
catch(err)
{
console.log(err);
}
L'objet error
L’objet error de JavaScript fournit des informations sur l'erreur quand elle se produit. Cet objet fournit deux propriétés : name et message.
• Création d’objet
• Manipulation d’objet
• Manipulation des objets natifs
• Manipulation JSON
12 heures
CHAPITRE 4
Manipuler les objets
1. Création d’objet
2. Manipulation d’objet
3. Manipulation des objets natifs
4. Manipulation JSON
04 - Manipuler les objets
Création d’objet
Syntaxe : Exemple :
const monObjet = { const telephone = {
propriete1: valeur1, marque: 'SmartF22',
propriete2: valeur2, prix: 400,
// ... , stock: 200,
methode1(/* ... */) {… // ..}, ref: 'SmartPhone2022',
methode2(/* ... */) {… // ...} VerifierStock: function() {
// ... if (this.stock > 0) {return true;}
}; else { return false; }
}
}
Remarques Test :
console.log(telephone.marque); //SmartF22
PARTIE 2
• Une méthode est une propriété dont la valeur est une fonction. Son console.log(telephone.VerifierStock()); //True
rôle est de définir un comportement (action) pour l’objet.
Dans l’exemple, l’objet « telephone » est caractérisé par les propriétés :
• On peut utiliser var au lieu de const.
marque, prix, stock et ref. Il possède aussi la méthode VerifierStock() qui
retourne True si le stock est disponible (>0).
Syntaxe : Exemple :
function monObjet(param1, param2, …){ function Telephone(n, p, s, r) {
this.propriete1: param1, this.nom = n;
this.propriete2: param2, this.prix = p;
// ... , this.stock = s;
this.methode1 = function () this.ref = r;
{… // ..}, this.VerifierStock = function() {
// ... if (this.stock > 0) {return true;}
}; else {return false;}
}
}
PARTIE 2
Test :
var t1 = new Telephone("SmartF22", 400, 200, "pro1");
var t2= new Telephone("t2", 200, 0, "Mi Max");
console.log(t1.nom); //SmartF22
console.log(t2.VerifierStock()); //False
1. Création d’objet
2. Manipulation d’objet
3. Manipulation des objets natifs
4. Manipulation JSON
04 - Manipuler les objets
Manipulation d’objet
Itérer sur les propriétés d'un objet à l'aide d'une boucle for...in
for (const key in telephone) {
console.log(key);
}
Output :
Marque
Prix
Stock
Ref
VerifierStock
dateSortie
PARTIE 2
1. Création d’objet
2. Manipulation d’objet
3. Manipulation des objets natifs
4. Manipulation JSON
04 - Manipuler les objets
Manipulation des objets natifs
• Déclaration et initialisation :
• indexOf() a un deuxième paramètre optionnel qui permet aussi de choisir l’indice à partir duquel la recherche débute (Par défaut, ce deuxième paramètre est à 0) :
PARTIE 2
Parcourir un tableau
On peut parcourir un tableau de différente manières :
Exemple :
console.log(element);
});
// Retourne :
// 'A';
// 'B';
Trier un tableau
• La méthode sort() retourne les éléments par ordre alphabétique (elle doivent être de la même nature) :
function findC(element) {
return element === 'C';
}
let tableau = ['A', 'B', 'C', 'D', 'C'];
tableau.findIndex(findC); // Retourne 2, l'indice du premier C
Méthode Description
length C'est un entier qui indique la taille de la chaîne de caractères.
substring(x,y) Méthode qui renvoie un string partiel situé entre la position x et la position y-1.
L’objet Date
L' objet date de JavaScript est utilisé pour obtenir la date (année, mois et jour) ainsi que le temps (heure, minutes et secondes).
On peut utiliser 4 variantes du constructeur Date pour créer un objet date :
Méthodes Description
getDate() Renvoie la valeur entière comprise entre 1 et 31 qui représente le jour de la date spécifiée sur la base de l'heure locale.
getDay() Renvoie la valeur entière comprise entre 0 et 6 qui représente le jour de la semaine sur la base de l'heure locale.
getFullYears() Renvoie la valeur entière qui représente l'année sur la base de l'heure locale.
getHours() Renvoie la valeur entière comprise entre 0 et 23 qui représente les heures sur la base de l'heure locale.
getMilliseconds() Renvoie la valeur entière comprise entre 0 et 999 qui représente les millisecondes sur la base de l'heure locale.
getMinutes() Renvoie la valeur entière comprise entre 0 et 59 qui représente les minutes sur la base de l'heure locale.
getMonth() Renvoie la valeur entière comprise entre 0 et 11 qui représente le mois sur la base de l'heure locale.
getSeconds() Renvoie la valeur entière comprise entre 0 et 60 qui représente les secondes sur la base de l'heure locale.
getUTCDate() Renvoie la valeur entière comprise entre 1 et 31 qui représente le jour de la date spécifiée sur la base de l'heure universelle.
getUTCDay() Renvoie la valeur entière comprise entre 0 et 6 qui représente le jour de la semaine sur la base de l'heure universelle.
getUTCFullYears() Renvoie la valeur entière qui représente l'année sur la base du temps universel.
getUTCHours() Renvoie la valeur entière comprise entre 0 et 23 qui représente les heures sur la base du temps universel.
getUTCMinutes() Renvoie la valeur entière comprise entre 0 et 59 qui représente les minutes sur la base du temps universel.
PARTIE 2
getUTCMonth() Renvoie la valeur entière comprise entre 0 et 11 qui représente le mois sur la base du temps universel.
getUTCSeconds() Renvoie la valeur entière comprise entre 0 et 60 qui représente les secondes sur la base du temps universel.
setDate() Définit la valeur du jour pour la date spécifiée sur la base de l'heure locale.
setDay() Définit le jour particulier de la semaine sur la base de l'heure locale.
setFullYears() Définit la valeur de l'année pour la date spécifiée sur la base de l'heure locale.
Méthodes Description
setHours() Définit la valeur de l'heure pour la date spécifiée sur la base de l'heure locale.
setMilliseconds() Définit la valeur en millisecondes pour la date spécifiée sur la base de l'heure locale.
setMinutes() Définit la valeur des minutes pour la date spécifiée sur la base de l'heure locale.
setMonth() Définit la valeur du mois pour la date spécifiée sur la base de l'heure locale.
setSeconds() Définit la deuxième valeur pour la date spécifiée sur la base de l'heure locale.
setUTCDate() Définit la valeur du jour pour la date spécifiée sur la base du temps universel.
setUTCDay() Fixe le jour particulier de la semaine sur la base du temps universel.
setUTCFullYears() Définit la valeur de l'année pour la date spécifiée sur la base du temps universel.
setUTCHours() Définit la valeur de l'heure pour la date spécifiée sur la base du temps universel.
setUTCMilliseconds() Définit la valeur en millisecondes pour la date spécifiée sur la base du temps universel.
setUTCMinutes() Définit la valeur des minutes pour la date spécifiée sur la base du temps universel.
setUTCMonth() Définit la valeur du mois pour la date spécifiée sur la base du temps universel.
setUTCSeconds() Définit la deuxième valeur pour la date spécifiée sur la base du temps universel.
PARTIE 2
L’objet Math
L'objet Math de JavaScript fournit un ensemble de constantes et méthodes pour effectuer des opérations mathématiques. Contrairement à l'objet date, il n'a pas de
constructeurs.
Méthodes Description
abs() Renvoie la valeur absolue du nombre donné.
acos(), asin(), atan() Renvoie respectivement l'arc cosinus, l'arc sinus et l'arc tangente du nombre donné en radians.
ceil() Renvoie une plus petite valeur entière, supérieure ou égale au nombre donné.
exp() Renvoie la forme exponentielle du nombre donné.
floor() Renvoie la plus grande valeur entière, inférieure ou égale au nombre donné.
log() Renvoie le logarithme népérien d'un nombre.
max() , max() Renvoie respectivement la valeur maximale et minimale des nombres donnés.
pow() Renvoie la valeur de la base à la puissance de l'exposant.
random() Renvoie un nombre aléatoire compris entre 0 (inclus) et 1 (exclusif).
PARTIE 2
L’objet Window
L’objet window de JavaScript est le parent de chaque objet qui compose la page web. Il possède plusieurs méthodes :
La méthode alert : bloque le programme tant que l'utilisateur n'aura pas cliquER sur "OK". Utile pour le débugger les scripts.
Syntaxe :
alert(variable) ;
alert("chaîne de caractères") ;
alert(variable+ "chaîne de caractères");
La méthode confirm(texte) : permet d'avertir l'utilisateur en ouvrant une boite de dialogue avec deux choix "OK" et "Annuler ". Le clique sur OK renvoie la valeur true.
Syntaxe :
if (confirm('texte'))
{ //action à faire pour la valeur true }
else
{ //action à faire pour la valeur false }
PARTIE 2
La méthode prompt (boite d'invite) propose un champ comportant une entrée à compléter par l'utilisateur. Cette entrée possède aussi une valeur par défaut. En cliquant
sur OK, la méthode renvoie la valeur tapée par l'utilisateur ou la réponse proposée par défaut. Si l'utilisateur clique sur Annuler ou Cancel, la valeur null est alors renvoyée.
Syntaxe :
prompt("texte de la boite d'invite" ,"valeur par défaut") ;
L’objet Window
La méthode open permet d’ouvrir une nouvelle fenêtre.
Syntaxe :
[window.]open("URL","nom_de_la_fenêtre","caractéristiques_de_la fenêtre")
• URL est l'URL de la page que l'on désire afficher dans la nouvelle fenêtre.
• Caractéristiques_de_la _fenêtre est une liste de certaines ou de toutes les caractéristiques de la fenêtre.
Quelques caractéristiques :
• height=pixels : la hauteur de la fenêtre (valeur minimale est 100 px) ;
• width=pixels : la largeur de la fenêtre (valeur minimale est 100 px) ;
• left=pixels : la position de la fenêtre à partir de la gauche.
PARTIE 2
L’objet Window
Les méthodes setTimeout() et clearTimeout() permettent de déclencher une fonction après un laps de temps déterminé.
Syntaxe :
setTimeout("demarrer()",5000)
clearTimeout(nom_du_compteur) ;
PARTIE 2
L’objet Window
La méthode setInterval () appelle une fonction ou évalue une expression à des intervalles spécifiés (en millisecondes).
La méthode setInterval () continue d'appeler la fonction jusqu'à ce que la méthode clearInterval () soit appelée ou que la fenêtre soit fermée.
Syntaxe :
Syntaxe :
Pour créer une expression régulière en JavaScript, il faut entourer le patron (pattern) par les caractères (/) :
Méthode Description
exec() Cherche une correspondance (match) d’un pattern dans une chaîne de caractères. Retourne un tableau ou null.
test() Cherche une correspondance (match) d’un pattern dans une chaîne de caractères. Retourne true ou false.
search() Teste une correspondance dans une chaîne de caractères. Retourne -1 ou l'index de la correspondance.
replace() Cherche une correspondance dans une chaîne et la remplace par une sous-chaîne.
replaceAll() Recherche toutes les correspondances dans une chaîne et les remplace par une sous-chaînes.
PARTIE 2
split() Décompose une chaîne en un tableau de sous-chaînes selon une expression régulière.
Expression Description
n+ Correspond à toute chaîne contenant au moins un caractère n.
PARTIE 2
Modificateur Description
[abc] Trouver l'un des caractères entre les crochets ➔ a ou b ou c
Les métacaractères
Les métacaractères sont des caractères ayant une signification particulière :
Expression Description
\d Trouver un chiffre
PARTIE 2
Caractère Description
^ Correspond au début de la chaine
Délimite un mot :
\b
la position où un caractère de mot n'est pas suivi ou précédé d'un autre caractère comme entre une lettre et un espace.
PARTIE 2
Exemple 3 :
Exemple 4 :
Utilisez une expression régulière insensible à la casse pour remplacer « JS »
par « JavaScript » dans une chaîne : Utilisez une expression régulière pour effectuer une recherche dans une
chaîne :
let texte = "Un cours de JS";
let NvTexte = texte.replace(/js/i, "JavaScript"); let Expr = /[A-Z]/;
console.log(NvTexte); //Un cours de JavaScript let texte = "un cours de JavaScript";
let index = texte.search(Expr);
PARTIE 2
1. Création d’objet
2. Manipulation d’objet
3. Manipulation des objets natifs
4. Manipulation JSON
04 - Manipuler les objets
Manipulation JSON
JSON : Syntaxe
Règles générales de la syntaxe JSON
• Les données Json sont écrites entre accolades (braces) ;
• Les données sont représentées sous forme de paires de clé – valeur ;
• Les clés doivent être mises entre guillemets (double quotes) ;
• La clé et la valeur doivent être séparées par deux points (:) ;
• La virgule (,) est utilisée pour séparer les données ;
• Les crochets tiennent les tableaux (brackets ) ;
• Les accolades retiennent les objets.
Les types JSON : Number, String (entre guillemets), Boolean, Null, Array, Object
Exemple :
{ "nom" : "saidi",
"prenom" : "ali",
"age" :40,
PARTIE 2
"interets" :null,
"experience" : ["CSS","JS","HTML"],
"addresse" : {"Rue" : "Sidi Maarouf","Ville": "Casablanca","codeP" : 10000 }
}
Fichier contact.json
document.write(typeof(jsObject)+'<br>');//object document.write(typeof(jsonString)+'<br>');//string
document.write(jsObject+'<br>'); //[object object]
document.write(jsonString);//{"nom":"Saidi","prenom
document.write(jsObject.nom + " ":"ali"}
"+jsObject.prenom+'<br>'); //Saidi Ali //remarquer la présence des "" dans les clés
30 heures
CHAPITRE 1
Comprendre l’arbre dom, les nœuds
parents et enfants
• Arbre DOM
• Objet Document
• Navigation dans le DOM (parentNode, childNodes, … )
10 heures
CHAPITRE 1
COMPRENDRE L’ARBRE DOM, LES NŒUDS
PARENTS ET ENFANTS
1. Arbre DOM
2. Objet Document
3. Navigation dans le DOM (parentNode, childNodes, …)
01 - Comprendre l’arbre dom, les nœuds
parents et enfants
Arbre DOM
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
meta
head
<title>Index</title> Title Index
</head> html h1 Ma page web
<body> Bonjour, nous sommes les stagiaires
body p de la filière développement digital
<h1>Ma page web</h1>
<p>Bonjour, nous sommes les stagiaires de la filière développement Nous étudions à l’
digital</p> p
a OFPPT
PARTIE 3
1. Arbre DOM
2. Objet Document
3. Navigation dans le DOM (parentNode, childNodes, …)
01 - Comprendre l’arbre dom, les nœuds
parents et enfants
Objet Document
Objet « document »
• L'objet document correspond à l’élément <html> de la page Web.
• La variable document est la racine du DOM.
• Cette variable est un objet et dispose des propriétés head et body qui permettent d'accéder respectivement aux éléments <head> et <body> de la page.
• L’objet document dispose d’un ensemble de méthodes et de propriétés permettant d’accéder et de manipuler le code html.
PARTIE 3
Méthode Description
document.getElementById(id) Retourne un élément par la valeur de l’attribut ID
Exemple :
let e3=document.getElementsByClassName("c1");
<p class="c1">1er paragraphe</p>
console.log(e3);
<p class="c2">2ème paragraphe</p> //HTMLCollection(2) [h1#p1.c1, p.c1, p1: h1#p1.c1]
</body>
</html>
Méthode Description
Méthode Description
element.textContent Renvoie tout le contenu textuel d'un élément du DOM, sans le balisage HTML
1. Arbre DOM
2. Objet Document
3. Navigation dans le DOM (parentNode, childNodes, …)
01 - Comprendre l’arbre dom, les nœuds
parents et enfants
Navigation dans le DOM
<ul>
<li>1er élément</li>
<li>2ème élément
<p>paragraphe</p>
PARTIE 3
<a>Lien</a>
</li>
<li>3ème élément</li>
</ul>
Figure 12 : Relation entre les nœuds
console.log(document.body.childNodes[1]);
//Affiche <h1 id="p1" class="c1">cours DOM JS</h1>
var h1 = document.body.childNodes[1];
<script>
let elt = document.getElementById("parent");
let premElt = elt.firstChild;
console.log(premElt); // text node
console.log(premElt.nodeName); // #text
</script>
PARTIE 3
Remarque
<div id="parent">
<h1>Un titre</h1>
<p>Un paragraphe</p>
</div>
<script>
let element = document.getElementById("parent");
let premElt = element.firstElementChild.nodeName;
console.log(premElt); // h1
</script>
PARTIE 3
<div id="parent">
<h1>Un titre</h1>
<p>Un paragraphe</p>
</div>
<script>
let element = document.getElementById("parent");
let DernElt = element.lastChild.nodeName;
console.log(DernElt); // #text
</script>
PARTIE 3
<div id="parent">
<h1>Un titre</h1>
<p>Un paragraphe</p>
</div>
<script>
let element = document.getElementById("parent");
let DernElt = element.lastElementChild.nodeName;
console.log(DernElt); // P
PARTIE 3
</script>
<div id="parent">
<h1>Un titre</h1>
<p>Un paragraphe</p>
<a href="#">Un lien</a>
</div>
<script>
let element = document.getElementById("parent");
for (let i = 0; i < element.childNodes.length; i++) {
console.log(element.childNodes[i]);
}
PARTIE 3
</script>
La liste « childNodes » comprend les nœuds '#text' et 'element'. Figure 14 : Résultat du code
<div id="parent">
<h1>Un titre</h1>
<p>Un paragraphe</p>
<a href="#">Un lien</a>
</div>
<script>
let parent = document.getElementById("parent");
for (let i = 0; i < parent.children.length; i++)
{ Figure 15 : Résultat du code
console.log(parent.children[i].nodeName + " - "+
PARTIE 3
parent.children[i].textContent);
}
</script>
<div id="parent">
<h1 id="id1">Un titre</h1>
<p>Un paragraphe</p>
<a href="#">Un lien</a>
</div>
<script>
let element = document.getElementById("id1"); Figure 16 : Résultat du code
let parent = element.parentNode;
console.log("élément parent : " +
parent.nodeName);
PARTIE 3
console.log(parent);
</script>
<div id="parent">
<h1 id="id1">Un titre</h1>
<p>Un paragraphe</p>
<a href="#">Un lien</a>
</div>
<script>
let element = document.getElementById("id1");
let parent = element.parentElement;
console.log("Elément parent - " + parent.nodeName); Figure 17 : Résultat du code
// parentNode vs parentElement
console.log(document.documentElement.parentNode); // document
PARTIE 3
console.log(document.documentElement.parentElement); // null
</script>
<div id="parent">
<h1 id="id1">Un titre</h1>
<p>Un paragraphe</p>
<a href="#">Un lien</a>
</div>
<script>
let element = document.getElementById("id1"); Figure 18: Résultat du code
let next = element.nextSibling;
console.log("Élément frère suivant - " + next.nodeName);
console.log(next); </script>
PARTIE 3
<div id="parent">
<h1 id="id1">Un titre</h1>
<p>Un paragraphe</p>
<a href="#">Un lien</a>
</div>
<script>
let element = document.getElementById("id1");
let EltSuiv = element.nextElementSibling; Figure 19 : Résultat du code
console.log("Elément frère suivant - " + EltSuiv.nodeName);
console.log(EltSuiv);
PARTIE 3
</script>
<div id="parent">
<h1 id="id1">Un titre</h1>
<p>Un paragraphe</p>
<a href="#">Un lien</a>
</div>
<script>
let element = document.getElementById("id1"); Figure 20 : Résultat du code
let eltPrec = element.previousSibling;
console.log("Element frère précédant - " + eltPrec.nodeName);
console.log(eltPrec);
PARTIE 3
</script>
<div id="parent">
<h1 id="id1">Un titre</h1>
<p id="id2">Un paragraphe</p>
<a href="#">Un lien</a>
</div>
<script>
let element = document.getElementById("id2"); Figure 21 : Résultat du code
let eltPrec = element.previousElementSibling;
console.log("Element frère précédant - " + eltPrec.nodeName);
console.log(eltPrec);
</script>
PARTIE 3
10 heures
CHAPITRE 2
Connaître les bases de la manipulation du
dom en javascript
Sélecteurs CSS
En javaScript, on peut chercher les éléments par leur sélecteur CSS :
• La méthode querySelector() renvoie le premier élément qui correspond à un ou plusieurs sélecteurs CSS spécifiés.
• La méthode querySelectorAll() renvoie tous les éléments correspondants.
Syntaxe :
document.querySelector(sélecteur CSS)
document.querySelectorAll(sélecteur CSS)
PARTIE 3
La méthode querySelector()
Exemples :
• //Obtenir le premier élément <p> dans le document :
document.querySelector("p");
• //Obtenir le premier élément <p> du document qui a class="par":
document.querySelector("p.par");
• //Modifier le texte de l’élément dont l’attribut id="id1":
document.querySelector("#id1").innerHTML = "Bonjour!";
• //Obtenir le premier élément <p> dans le document où le parent est un élément <div> :
document.querySelector("div > p");
• //Obtenir le premier élément <a> dans le document qui a un attribut "target":
document.querySelector("a[target]");
PARTIE 3
La méthode querySelectorAll()
Exemples :
• //Obtenir tous les éléments <p> du document et définir la couleur d'arrière-plan du premier élément <p> (index 0) :
let x = document.querySelectorAll("p");
x[0].style.backgroundColor = "red";
• //Obtenir tous les éléments <p> du document qui ont l’attribut class="par", et définir l'arrière-plan du premier élément <p> :
let x = document.querySelectorAll("p.par");
x[0].style.backgroundColor = "red";
• // Calculer le nombre d'éléments qui ont l’attribut class="par" (en utilisant la propriété length de l'objet NodeList) :
var x = document.querySelectorAll(".par").length;
// Définir la couleur d'arrière-plan de tous les éléments du document qui ont l’attribut class="par":
let x = document.querySelectorAll(".par");
for (let i = 0; i < x.length; i++) { x[i].style.backgroundColor = "red"; }
PARTIE 3
• //Définir la bordure de tous les éléments <a> du document qui ont un attribut "target":
let x = document.querySelectorAll("a[target]");
for (let i = 0; i < x.length; i++) { x[i].style.border = "10px solid red"; }
La méthode querySelectorAll()
Exemples:
• //Sélectionner le premier paragraphe du document et modifier son texte avec la propriété textContent */
document.querySelector('p').textContent = '1er paragraphe du document';
let documentDiv = document.querySelector('div'); //1er div du document
• //Sélectionner le premier paragraphe du premier div du document et modifier son texte
documentDiv.querySelector('p').textContent = '1er paragraphe du premier div’;
• //Sélectionner le premier paragraphe du document avec un attribut class='bleu' et changer sa couleur en bleu avec la propriété style */
document.querySelector('p.bleu').style.color = 'blue’;
• //Sélectionne tous les paragraphes du premier div
let divParas = documentDiv.querySelectorAll('p’);
PARTIE 3
Exemple :
10 heures
CHAPITRE 3
Manipuler les éléments html
Remarque
Exemples :
let element1 = document.createElement('p');
console.log(element1); // <p></p>
Exemple :
Exemple :
<div>
<div>
<label>Nom : </label><br>
<input type="text" class="style1" id="b1">
</div>
</div>
<script>
// Modifier le style de l’élément qui a la l’attribut class=style1
document.getElementsByClassName("style1").style.borderColor = "red";
</script>
PARTIE 3
<div>
<div>
<label>Nom : </label><br>
<input type="text" class="style1" id="b1">
</div>
</div>
<script>
// Modifier le style de l’élément qui a la l’attribut class=style1 en lui associant une classe nommée
styleErreur
document.getElementsByClassName("style1").className = "styleErreur";
</script>
PARTIE 3
Exemple 1 : Ajouter les attributs class et disabled à l'élément <button> Exemple 2 : Mettre à jour la valeur de l'attribut href de l’élément <a>.
<script> <script>
// sélectionner l’élément // sélectionner l’élément
let btn = document.getElementById("Btn"); let lien = document.getElementById("lien");
</script> </script>
<script>
// sélectionner l’élément
let lien = document.getElementById("lien");
</script>
PARTIE 3
Les attributs :
• Label : prend une valeur textuelle, spécifie le label du menu.
• Type : prend l’une des valeurs (list, toolbar, contex). Son rôle est de spécifier le type du menu à afficher.
Remarque
12 heures
CHAPITRE 1
Comprendre la notion d’événement pour
gérer l’interactivité
07 heures
CHAPITRE 1
Comprendre la notion d’événement pour
gérer l’interactivité
Gestionnaire d'événements :
Le gestionnaire d'événements correspond généralement à une
fonction appelée suite à la production de l’événement.
Méthode addEventListener()
La méthode addEventListener appliquée sur un élément DOM, lui ajoute un gestionnaire pour un événement particulier.
Cette fonction sera appelée à chaque fois que l'événement se produit sur l'élément.
Remarque
Syntaxe : la méthode prend deux paramètres : le type de l'événement et la fonction qui gère l'événement.
Méthode addEventListener()
Exemple 1 :
let element = document.getElementById("btn");
element.addEventListener("click", message);
Exemple :
function fct1() {
alert("Fonction 1");
}
function fct2() {
alert("Fonction 2");
PARTIE 4
function clickFct() {
alert("Vous avez cliqué :");
}
function mouseoverFxn() {
element.style.background = "red";
element.style.padding = "8px";
}
PARTIE 4
function mouseoutFxn() {
element.style.background = "white";
element.style.padding = "2px";
}
}
<script>
let element = document.querySelector(".style1"); //Sélectionner l’élement button
element.addEventListener("mouseover", fct1); // Ajouer un évenement de type « mouseover »
function fct1(){
alert("Evénement déclenché!");
}
function SupprimerEvnt(){
element.removeEventListener("mouseover", fct1);
PARTIE 4
}
</script>
• mouseover / mouseout
L’événement mouseover se déclenche lorsque le curseur de la souris se déplace à l'extérieur d’un élément.
L’événement mouseout se déclenche lorsque le curseur de la souris survole un élément, puis se déplace vers autre élément.
• mouseenter / mouseleave
PARTIE 4
L’événement mouseenter se déclenche lorsque le curseur de la souris se déplace de l'extérieur à l'intérieur d'un élément.
L’événement mouseleave se déclenche lorsque le curseur de la souris se déplace de l'intérieur à l'extérieur d'un élément.
btn.addEventListener('click',(event) => {
console.log('click');
PARTIE 4
});
Exemple :
<!DOCTYPE html>
<html>
<head>
<title>Les événements de la souris</title>
<style>
#pos { background-color: goldenrod; height: 200px; width: 400px; }
</style>
</head>
<body>
<p>Faire bouger la souris pour voir sa position.</p>
<div id="pos"></div>
<p id="affichage"></p>
<script>
let pos = document.querySelector(‘#pos');
pos.addEventListener('mousemove', (e) => {
PARTIE 4
Remarques
PARTIE 4
• Les événements keydown et keypress sont déclenchés avant toute modification apportée à la zone de texte.
• L'événement keyup se déclenche après que les modifications aient été apportées à la zone de texte.
Dans le code suivant, les trois gestionnaires d'événements seront appelés à l’enfoncement d’une touche de caractère :
});
<script>
let zone = document.getElementById('message');
zone.addEventListener('keydown', (event) => {
console.log(`key=${event.key},code=${event.code}`);
});
PARTIE 4
</script>
05 heures
CHAPITRE 2
Gérer les éléments d’un formulaire
}
function ResetForm() {
document.getElementById("FORM1").reset();
document.getElementById("message").innerHTML="Formulaire réinitialisé";
}
</script>
Copyright - Tout droit réservé - OFPPT 199
CHAPITRE 2
Gérer les éléments d’un formulaire
<form onsubmit="EnvoyerForm(event)">
<input type="text">
<button type="submit">Envoyer</button>
</form>
<script type="text/JavaScript">
function EnvoyerForm(event){
event.preventDefault();
window.history.back();
}
</script>
PARTIE 4
HTML5 a introduit un nouveau concept de validation HTML appelé « validation des contraintes » qui est basée sur :
PARTIE 4
Validation des
Validation des Validation des
contraintes par les
contraintes par les contraintes par les
propriétés et les
attributs d’une entrée. sélecteurs CSS.
méthodes du DOM.
Validation des contraintes en utilisant les sélecteurs CSS Validation des contraintes par les attributs
:disabled Sélectionner les éléments désactivés disabled L'input doit être désactivé
:invalid Sélectionner les éléments dont la valeur est invalide max Spécifier la valeur maximale d'un élément input
:optional Sélectionner les éléments d'entrée sans attribut "requis" spécifié min Spécifier la valeur minimale d'un élément input
:required Sélectionner les éléments d'entrée avec l'attribut "requis" spécifié pattern Spécifier un modèle de chaine (Regex)
:valid Sélectionner les éléments d'entrée avec des valeurs valides required Saisie obligatoire
function validerForm() {
let x = document.forms["myForm"]["nom"].value;
if (x == "") {
alert("Le champ “nom” doit être saisi");
return false;
}
}
• Découvrir JQUERY
• Découvrir AJAX
18 heures
CHAPITRE 1
Découvrir JQUERY
08 heures
CHAPITRE 1
Découvrir JQUERY
JQUERY : introduction
JQuery est une bibliothèque JavaScript open-source inventée par John Resig en 2006. Cette bibliothèque est compatible avec les différents navigateurs web.
Le rôle de JQuery est de simplifier l'utilisation de JavaScript et la manipulation du DOM sur les site Web. En effet, les traitements nécessitant l’écriture de nombreuses
lignes de code JavaScript sont encapsulés dans des méthodes appelées dans une seule ligne de code.
JQUERY : Installation
On peut utiliser deux manières pour utiliser JQuery dans les pages html :
Méthode 1 : Téléchargement de JQuery
Il existe deux versions de JQuery téléchargées depuis le site jQuery.com.
• Version de production : version minifiée et compressée pour la phase de l’hébergement.
• Version de développement : version non compressée et lisible, pour la phase de développement et de tests.
La bibliothèque jQuery téléchargée correspond à un fichier JavaScript. Pour l’utiliser il faut le référencer avec la balise <script> dans la section <head> :
<head>
<script src="jquery-3.5.1.min.js"></script>
</head>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
</head>
Syntaxe de JQUERY
La syntaxe de JQuery est basée sur les sélecteurs : $( sélecteur ). action ()
• $() est un raccourci vers la fonction jQuery() qui trouve des éléments dans une page et crée des objets jQuery qui référencent ces éléments.
Par exemple : $('p') et jQuery('p') : sélectionne tous les éléments p (paragraphe).
• Sélecteur correspond à sélecteur CSS pour interroger (ou rechercher) des éléments HTML.
• Action correspond à une action à effectuer sur le(s) élément(s) sélectionnés.
Exemples :
• $(this).hide() : masque l'élément courant.
• $("p").hide() : masque tous les éléments <p>.
• $(".test").hide() : masque tous les éléments avec class="test".
• $("#test").hide() : masque l'élément avec id="test".
PARTIE 5
$(document).ready(function(){
// Méthodes jQuery...
});
Exemples d'actions qui peuvent échouer si les méthodes sont exécutées avant le chargement complet du document :
• Masquer un élément qui n'est pas encore crée.
• Obtenir la taille d'une image qui n'est pas encore chargée.
PARTIE 5
Notion de chaînage
Les instructions JQuery peuvent être écrites soit l'une après l'autre (dans des lignes différentes) ou en utilisant la technique de chaînage.
Le chaînage permet d'exécuter plusieurs actions JQuery l'une après l'autre (dans la même ligne), sur le même élément.
Exemple : Les méthodes css(), slideUp() et slideDown() sont appelées sur le paragraphe identifié par l’ID « p1 ». Ainsi, l'élément "p1" devient d'abord rouge, puis il glisse
vers le haut, puis vers le bas :
Syntaxe 1 :
$("#p1").css("color", "red").slideUp(2000).slideDown(2000);
Syntaxe 2 :
$("#p1").css("color", "red")
.slideUp(2000)
.slideDown(2000);
PARTIE 5
<head>
<meta charset="utf-8">
<title>Désactiver un lien</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$(".menu a").each(function(){
if($(this).hasClass("disabled")){
$(this).removeAttr("href");
}
});
}); <body>
</script> <ul class="menu">
PARTIE 5
<head>
<meta charset="utf-8">
<title>Désactiver un lien</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$(".menu a").each(function(){
if($(this).hasClass("disabled")){
$(this).attr("href","https://www.google.com/");
}
});
}); <body>
</script> <ul class="menu">
PARTIE 5
$("p").click(function(){
// actions de l’évènement
$(this).hide();
});
Exemple 2 : La méthode dbclick()
Attribuer un événement de double clic et une fonction à tous les paragraphes d'une page. La fonction est exécutée lorsque l'utilisateur double-clique sur le paragraphe.
$("p").dblclick(function(){
$(this).hide();
PARTIE 5
});
• Introduction à AJAX
• Fonctionnement d’AJAX
• Implémentation d’AJAX via jQuery
10 heures
CHAPITRE 2
Découvrir AJAX
1. Introduction à AJAX
2. Fonctionnement d’AJAX
3. Implémentation d’AJAX via jQuery
02 - Découvrir AJAX
Introduction à AJAX
Qu'est-ce qu'AJAX ?
AJAX est acronyme de « Asynchronous JavaScript And XML ».
AJAX est une technologie basée sur :
• Un objet XMLHttpRequest intégré au navigateur (pour demander des données à un serveur Web).
• JavaScript et DOM HTML (pour afficher les données).
AJAX permet de :
• Lire les données d'un serveur web (après le chargement d'une page web) ;
• Mettre à jour une page web sans la recharger ;
• Envoyer les données à un serveur web (en arrière-plan).
PARTIE 5
L'objet XMLHttpRequest
• L’objet XMLHttpRequest de la technologie AJAX est un objet qui permet d’envoyer des requêtes HTTP au serveur, de recevoir des réponses et de mettre à jour la page
Web.
• En mode asynchrone, cette mise à jour se réalise sans devoir recharger la page et donc de façon totalement transparente pour l’utilisateur.
• L’objet XMLHttpRequest est basé sur le principe d’échange de données entre le client (la page web) et le serveur (sur lequel se trouve la page ou la source de données à
laquelle la page Web veut accéder).
1. Introduction à AJAX
2. Fonctionnement d’AJAX
3. Implémentation d’AJAX via jQuery
02 - Découvrir AJAX
Fonctionnement d’AJAX
Méthode Description
new XMLHttpRequest() Créer un nouvel objet XMLHttpRequest
• async: true (asynchrone, c’est à dire JavaScript n'a pas à attendre la réponse du serveur) ou false (synchrone)
• user: nom d'utilisateur (optionel)
• psw: mot de passe (optionnel)
Propriété Description
onreadystatechange Définit une fonction à appeler lorsque la propriété readyState change
La propriété onreadystatechange
• La propriété onreadystatechange de l'objet XMLHttpResponse permet de définir une fonction à exécuter quand une réponse est reçue.
• La propriété onreadystatechange exécute la fonction chaque fois que readyState change de valeur : Lorsque readyState est 4 et status est 200, la réponse est prête.
Exemple 1 : xhttp.onreadystatechange = function() {
Source : https://www.w3schools.com if (this.readyState == 4 && this.status == 200) {
document.getElementById("demo").innerHTML = this.responseText;
}
};
xhttp.open("GET", "ajax_info.txt", true);
xhttp.send();
this.responseText;
}
};
xhttp.open("GET", "ajax_info.txt", true);
xhttp.send();
}
Copyright - Tout droit réservé - OFPPT 234
02 - Découvrir AJAX
Fonctionnement d’AJAX
</div> }
function myFunction(xhttp) {
<script> document.getElementById("demo").innerHTML =
xhttp.responseText;
</script> }
1. Introduction à AJAX
2. Fonctionnement d’AJAX
3. Implémentation d’AJAX via jQuery
02 - Découvrir AJAX
Implémentation d’AJAX via jQuery
URL : chaîne de l’URL vers laquelle les données sont soumises (ou récupérées).
Options : options de configuration pour la requête Ajax. Un paramètre d'options peut être spécifié à l'aide du format JSON. Ce paramètre est facultatif.
PARTIE 5
Options Description
Une chaîne contenant un type de contenu lors de l'envoi de contenu MIME au serveur.
contentType
La valeur par défaut est "application/x-www-form-urlencoded; charset=UTF-8"
data Une donnée à envoyer au serveur. Il peut s'agir d'un objet JSON, d'une chaîne ou d'un tableau.
dataType Le type de données attendues du serveur.
error Une fonction de rappel à exécuter lorsque la requête échoue.
global Un booléen indiquant s'il faut ou non déclencher un gestionnaire de requêtes Ajax global. La valeur par défaut est true.
headers Un objet de paires clé/valeur d'en-tête supplémentaires à envoyer avec la demande.
statusCode Un objet JSON contenant des codes HTTP numériques et des fonctions à appeler lorsque la réponse a le code correspondant.
success Une fonction de rappel à exécuter lorsque la requête Ajax réussit.
timeout Une valeur numérique en millisecondes pour le délai d'expiration de la demande.
PARTIE 5
type Un type de requête http : POST, PUT et GET. La valeur par défaut est GET.
url Une chaîne contenant l'URL à laquelle la demande est envoyée.
username Un nom d'utilisateur à utiliser avec XMLHttpRequest en réponse à une demande d'authentification d'accès HTTP.
password Un mot de passe à utiliser avec XMLHttpRequest en réponse à une demande d'authentification d'accès HTTP.
<p></p>
Dans l'exemple ci-dessus, le premier paramètre '/getData' de la méthode ajax() est une URL à partir de laquelle on veut récupérer les données.
Par défaut, la méthode ajax() exécute la requête http GET si le paramètre d'option n'inclut pas l' option de méthode .
Le deuxième paramètre est le paramètre options au format JSON qui spécifie la fonction de rappel qui sera exécutée.
PARTIE 5
$.ajax('/jquery/getjsondata',
{
dataType: 'json', // type des données de la réponse
timeout: 500, // délai d’expiration en milliseconds
success: function (data,status,xhr) { // fonction callback en cas de succès
$('p').append(data.firstName + ' ' + data.middleName + ' ' + data.lastName);
},
error: function (jqXhr, textStatus, errorMessage) { // cas d’erreur
$('p').append('Error: ' + errorMessage);
}
});
<p></p>
PARTIE 5
Le premier paramètre est une URL de la requête qui revoie des données au format JSON.
Dans le paramètre options, l’option dataType spécifie le type de données de réponse (JSON dans ce cas). L’option timeout spécifie le délai d'expiration de la demande en
millisecondes.
<p></p>
$.ajax('/jquery/submitData', {
type: 'POST', // Méthode POST
data: { myData: 'Mes données.' }, // données à envoyer
success: function (data, status, xhr) {
$('p').append('status: ' + status + ', data: ' + data);
},
error: function (jqXhr, textStatus, errorMessage) {
$('p').append('Error' + errorMessage);
}
});
<p></p>
PARTIE 5
Le premier paramètre est une URL de la requête qui revoie des données au format JSON.
L’option type désigne le type de la requête (POST dans ce cas). L'option data spécifie que les données qui seront soumises au serveur le seront en tant qu'objet JSON.
$.get('/data.txt', // url
function (data, textStatus, jqXHR) { // success callback
alert('status: ' + textStatus + ', data:' + data);
});
PARTIE 5
}); })
.done(function () { alert('Request done!'); })
.fail(function (jqxhr,settings,ex) {
<p></p> alert('failed, '+ ex); });
$.post('/jquery/submitData', // url
{ myData: 'This is my data.' }, // données à soumettre
function(data, status, jqXHR) {// succès
PARTIE 5
<p></p>
$.post('/submitJSONData', // url
{ myData: 'This is my data.' }, // data to be submit
function(data, status, xhr) { // succès
alert('status: ' + status + ', data: ' + data.responseData);
},
'json'); // format des données de réponse
$.post('/jquery/submitData',
{ myData: 'This is my data.' },
function(data, status, xhr) {
$('p').append('status: ' + status + ', data: ' + data);
PARTIE 5
<p></p>
$('#msgDiv').load('/demo.html');
<div id="msgDiv"></div>
PARTIE 5
Remarque
• Si aucun élément n'est trouvé par le sélecteur alors la requête Ajax ne sera pas envoyée.
</html>