JavaScript pour le Front-End

DOM et Manipulations

Accès au DOM et événements modernes

Le DOM (Document Object Model) représente la structure de votre page HTML en tant qu’arbre d’objets, ce qui permet de manipuler et d’interagir avec les éléments HTML via JavaScript.

Événements modernes

Les événements sont des interactions utilisateur ou système qui peuvent être capturées par JavaScript.

Déléguation d’événements

La déléguation d’événements est une technique permettant de gérer les événements de manière plus efficace en les attachant à un parent commun, plutôt qu’à chaque élément individuel.


API Modernes

Local Storage, Session Storage

Les API Local Storage et Session Storage permettent de stocker des données côté client dans le navigateur, mais elles diffèrent par leur durée de vie.

Web Workers

Les Web Workers permettent d’exécuter des scripts JavaScript en parallèle, sans bloquer le thread principal, ce qui améliore la performance, surtout pour les opérations intensives.

Intersection Observer API

L’Intersection Observer API permet de surveiller l’intersection d’un élément avec un autre élément ou le viewport, utile pour des effets comme le lazy loading des images ou le suivi du défilement de la page.

Conseil : Utilisez l’Intersection Observer API pour les animations au scroll, le lazy loading des images et le suiX

WebSockets

Les WebSockets sont une technologie permettant d’établir une communication bidirectionnelle en temps réel entre un client et un serveur. Contrairement aux requêtes HTTP classiques, qui sont stateless et nécessitent une nouvelle connexion pour chaque échange de données, les WebSockets maintiennent une connexion persistante, ce qui les rend particulièrement adaptés aux applications nécessitant des mises à jour en temps réel (chat, notifications, jeux en ligne, etc.).

Création d’une connexion WebSocket

L’API WebSocket est simple à utiliser en JavaScript. Voici comment établir une connexion à un serveur WebSocket :

const socket = new WebSocket('wss://example.com/socket');

// Événement déclenché lorsque la connexion est ouverte
socket.addEventListener('open', (event) => {
  console.log("Connexion WebSocket établie !");
  socket.send('Hello serveur !'); // Envoi d'un message au serveur
});

// Événement déclenché lorsqu'un message est reçu
socket.addEventListener('message', (event) => {
  console.log('Message reçu du serveur :', event.data);
});

// Événement déclenché lorsque la connexion est fermée
socket.addEventListener('close', (event) => {
  console.log("Connexion WebSocket fermée", event);
});

// Événement déclenché en cas d'erreur
socket.addEventListener('error', (event) => {
  console.error("Erreur WebSocket", event);
});
Utilisation des WebSockets pour un chat en temps réel

Voici un exemple simple d’application de chat utilisant les WebSockets :

const socket = new WebSocket('wss://monchat.com/socket');
const input = document.querySelector('#message');
const button = document.querySelector('#envoyer');
const messages = document.querySelector('#messages');

// Envoi d'un message
button.addEventListener('click', () => {
  if (input.value.trim() !== '') {
    socket.send(input.value);
    input.value = '';
  }
});

// Réception d'un message
socket.addEventListener('message', (event) => {
  const msg = document.createElement('li');
  msg.textContent = event.data;
  messages.appendChild(msg);
});
Avantages des WebSockets

Les WebSockets sont largement utilisés dans les applications modernes nécessitant une interaction en temps réel, comme les jeux multijoueurs, les tableaux de bord financiers et les systèmes de messagerie instantanée.

Programmation Réactive

Programmation réactive avec RxJS (Introduction)

RxJS (Reactive Extensions for JavaScript) est une bibliothèque pour la programmation réactive qui permet de manipuler des flux de données de manière déclarative et asynchrone.

Conseil : RxJS est très puissant pour les applications front-end complexes nécessitant des manipulations asynchrones comme les appels API ou les interactions utilisateur multiples.

Intégration avec React

La programmation réactive s’intègre très bien avec des frameworks comme React, où les états peuvent être gérés de manière réactive via des Observables ou des hooks.

Conseil : RxJS peut être utilisé dans React pour gérer des flux d’événements complexes, surtout lorsqu’il s’agit de synchroniser plusieurs actions asynchrones.