Programmation JavaScript/jQuery
jQuery est un framework JavaScript libre lancé en janvier 2006 par John Resig. 
Installation.
Typiquement, il faut l'inclure depuis son site ou en le téléchargeant :
 <script src="https://code.jquery.com/jquery-3.6.3.min.js"></script>
Pour vérifier la version installée ensuite, taper dans la console du navigateur (F12) :
 console.log(jQuery().jquery);
Utilisation.
Recherches.
Afin de raccourcir la syntaxe au maximum, en jQuery le dollar ($) est un alias de la fonction codice_1 servant à rechercher dans le DOM un nœud correspondant au sélecteur en paramètre.
Par exemple, entrer le sélecteur codice_2 dans la console du navigateur affiche un objet avec les éléments de la page au format jQuery.
Autre exemple pour rechercher par attribut de données : codice_3.
Pour éviter des recherches absolues dans toute la page, on peut aussi lancer des recherches relatives à un nœud. Ceci est appelé le "traversing", et jQuery propose les méthodes ci-dessous pour ce faire :
.find().
Cherche tous les enfants de l'objet courant correspondant au paramètre.
.parents().
Cherche tous les parents de l'objet courant correspondant au paramètre.
.first().
Cherche le premier enfant de l'objet courant correspondant au paramètre.
.closest().
Cherche dans le premier parent de l'objet courant correspondant au paramètre.
.each().
Pour boucler sur tous les éléments possédant une classe :
$('.ma_classe').each(function(index, result) {
 if (result.value === null) {
 return true; // continue
 if (result.value === "stop") {
 console.log(index);
 return false; // break
});
Évènements.
Il existe deux syntaxes pour écouter les évènements : l'une avec la méthode "on" et l'autre avec le nom de l'évènement directement. Exemple avec "change" :
$(document).on('change', '#mon_id', function () { ...
$('#mon_id').change(function() { ...
Les principaux évènements utilisés sont :
.ready().
Quand la page est finie de charger.
.change().
Quand on change la valeur d'un champ.
.click().
Quand on clique sur un élément.
.addClass() et .removeClass().
Permettent de rajouter des classes à des éléments JQuery.
Depuis la v1.4, on peut y mettre des fonctions. Par exemple pour retirer toutes les classes par préfixe (finissant par un nombre) :
 monElement.removeClass(function (index, className) {
 regex = new RegExp(monPrefix + '[0-9]+', 'g');
 return (className.match(regex) || []).join(' ');
.ajax().
La méthode codice_4 permet comme son nom l'indique de lancer des requêtes , c'est-à-dire asynchrones en (XHR).
Pour appliquer un traitement dépendant du résultat de ces requêtes, il suffit de les faire suivre par les méthodes existantes qui correspondent à chaque type de résultat.
Par exemple, le code suivant récupère un fichier et affiche son contenu, ou une erreur si le fichier est inaccessible :
 $.ajax({
 url: "http://www.example.com",
 type: 'POST',
 data: {
 'id': 1,
 dataType: 'json',
 }).done(function(data) {
 alert(data);
 }).fail(function() {
 alert('The file is missing!');

Programmation JavaScript/Générateurs
Apparus en JS avec ES6 en 2013, les s permettent de retourner un grand volume de données sans surcharger la rame, en la découpant en petits paquets.
En deux mots, on les utilise en remplaçant codice_1 par codice_2. Mais il faut aussi créer une fonction générateur, annotée avec un astérisque, pour suivre le .
Exemple.
function* fourInts() {
 let int = 0;
 while (int < 4) {
 yield int;
 int++;
const gen = fourInts(); // création
alert(gen.next().value); // 0
alert(gen.next().value); // 1
alert(gen.next().value); // 2
alert(gen.next().value); // 3
alert(gen.next().value); // undefined

Programmation JavaScript/Exceptions et erreurs

try / catch / finally.
Pour éviter qu'une erreur interrompe l'exécution du programme, on peut l'attraper et définir des actions à effectuer si elle survient.
Les exceptions les plus courantes sont des ressources introuvables (ex : plus de réseau ou base de données en maintenance) ou des calculs impossibles comme les divisions par zéro.
Exemples.
Appel réseau :
try {
 call_network()
} catch (error) {
 print_retry_later_message()
} finally {
 log()
Calcul d'une moyenne :
"use strict";
const x = 15;
let average;
try {
 x = x + 5;
 average = x / 0;
 alert("The average is: " + average);
} catch (err) {
 alert("Something strange occurs. The error is: " + err);
} finally {
 alert("End of program.");
Dans cet exemple, la division par zéro montre que l'exécution est toujours interrompue avant l'affichage de la moyenne, pour passer dans le bloc codice_1 puis le codice_2.
Si on corrige la division, on constate qu'on ne passe plus dans le bloc codice_1, mais toujours dans le codice_2 (même si les blocs qui le précèdent contiennent un codice_5).
throw.
Il est aussi possible de provoquer soi-même des exceptions pour interrompre une exécution.
Exemples.
Calcul d'une moyenne :
"use strict";
const x = 15;
let average;
try {
 average = x / 0;
 if (average === Infinity || Number.isNaN(average)) {
 throw "Error during division. The result is: " + average;
 alert("The average is: " + average);
} catch (err) {
 alert("Something strange occurs. The error is: " + err);
} finally {
 alert("End of program.");
Ici la division par zéro ne provoque pas d'exception, mais renvoie "Infinity". On la provoque donc explicitement ensuite.
Calcul d'un âge :
"use strict";
const answer = prompt("How old are you?");
const age = Number(answer);
if (isNaN(age)) {
 throw answer + " cannot be converted to a number.";
alert("Next year you will be " + (age + 1));

Astuces pour Windows XP
Réseau sous Windows
Windows XP Embedded
Lire et écrire le japonais sous Windows
Windows/Sommaire
Windows/Version imprimable
Windows/Problèmes connus
Windows 10.
PSSecurityException à l'exécution d'un programme.
Autoriser cela dans Powershell en admin :
 set-executionpolicy unrestricted

Programmation PowerShell/Version imprimable

DOS/Prompt
Change le , c'est-à-dire ce qu'il y a avant le curseur de la console.

Patrons de conception/Outbox
Principe.
Lorsque l'on doit notifier de la mise à jour d'une base de données, plusieurs problèmes peuvent survenir :
L'outbox pattern permet de résoudre tout cela en utilisant une table pour stocker les messages de notification. Ces derniers sont alors enregistrés en même temps que la mise à jour à notifier, dans la même transaction. Ils sont donc fortement couplés : l'un ne peut pas aller sans l'autre.
Ils sont ensuite dépilés par le service qui assure la notification, et peuvent être rejoués en cas de problème d'envoi.

Patrons de conception/Outbox pattern
Patrons de conception/Modèle-Vue-Contrôleur

Ce patron connu sous le sigle MVC, consiste à découper une application en trois types de modules ayant chacun une responsabilité différente :

Patrons de conception/Feature toggles
Lors des mises en production, en cas de bug on peut être amené à réaliser un rollback pour revenir sur l'ancien code (voire l'ancienne base de données) plus stable. Or, cela est très contraignant et tous les utilisateurs peuvent potentiellement rencontrer ce bug ou une interruption de service lors du retour en arrière.
De plus, dans la gestion de version, on peut avoir besoin d'utiliser du code situé sur une autre branche non terminée, sans pouvoir la passer en production pour autant.
Le patron de conception Feature flags résout ceci en permettant d’activer une fonctionnalité de l'application à l'exécution, parfois pour certains utilisateurs seulement.

Mathc initiation/a78a
Sommaire
Pouvoir Accéder et Utiliser Internet/Version imprimable