BTS SIO2D
  • Accueil
  • Connexion
16 février 2025 par Mehdi ENNAJEH

Event Dispatch dans Angular : Rendre l’Hydratation plus Fluide !

Event Dispatch dans Angular : Rendre l’Hydratation plus Fluide !
16 février 2025 par Mehdi ENNAJEH

Table des matières

Toggle
  • Event Dispatch dans Angular : Rendre l'Hydratation plus Fluide
    • Le problème : Une UI visible mais pas interactive
    • La solution : Comment fonctionne Event Dispatch
      • Exemple simple en JavaScript
    • Et après ?

Event Dispatch dans Angular : Rendre l'Hydratation plus Fluide

Publié par l'équipe Angular

Le problème : Une UI visible mais pas interactive

Quand Angular génère une page côté serveur, elle s'affiche rapidement, mais les interactions (clics, formulaires, etc.) ne fonctionnent pas tant que le JavaScript n'est pas complètement chargé. Résultat : les utilisateurs essaient d'interagir, mais rien ne se passe.

La solution : Comment fonctionne Event Dispatch

Angular capture les événements au niveau de la racine du document (document.body) dès qu'ils se produisent, même si le JavaScript n'est pas encore prêt. Une fois l'hydratation terminée, Angular rejoue ces événements dans le bon ordre pour garantir une interaction fluide.

Exemple simple en JavaScript


// 1. Capture tous les événements avant que le JS soit complètement chargé

document.body.addEventListener("click", (event) => {
  window._eventQueue = window._eventQueue || [];
  window._eventQueue.push(event); // Stocke les événements
});

// 2. Une fois le JavaScript chargé, on rejoue les événements stockés
window.onload = () => {
  if (window._eventQueue) {
    window._eventQueue.forEach((event) => {
      event.target.dispatchEvent(new Event(event.type, event)); 
    });
    window._eventQueue = []; // Vide la file d'attente
  }
};

      

Avec cette approche, plus aucun événement n'est perdu, et l'utilisateur n'a pas l'impression que l'interface est bloquée. Cette technique est directement intégrée dans Angular avec une implémentation plus avancée.

Et après ?

Event Dispatch est une première étape. Angular travaille aussi sur les Deferrable Views, qui permettront de charger progressivement le JavaScript uniquement quand c'est nécessaire. Cela réduira encore plus le temps de chargement et améliorera l'expérience utilisateur.

Une question ? Envie d'en discuter ? Partage ton avis en commentaire.

Article précédentNew Signal input migrationArticle suivant News novembre 1

Laisser un commentaire Annuler la réponse

Vous devez vous connecter pour publier un commentaire.

About The Blog

Nulla laoreet vestibulum turpis non finibus. Proin interdum a tortor sit amet mollis. Maecenas sollicitudin accumsan enim, ut aliquet risus.

Articles récents

projet flutter Forum28 avril 2025
Backup BDD Bash17 mars 2025
UE – TF1 se met à Unreal Engine ?17 mars 2025

Catégories

  • Article Angular Killian
  • Article Clément
  • Article Unreal Engine Hugo
  • Cybersécurité
  • IA
  • Non classé
  • Projet Flutter KHM
  • Projet Hugo
  • Stage Clément
  • Stage Hugo
  • Stage Killian P
  • TP Clément

Méta

  • Inscription
  • Connexion
  • Flux des publications
  • Flux des commentaires
  • Site de WordPress-FR

Étiquettes

Article Développer son projet professionnel Flutter Gérer son identité professionnelle Java Stage Symfony TP

Why Lander

Lander is a design prepared
especially for the free version
of Rife WordPress Theme.

You can use this for free.
Make your website today.
Get Started Now!

Contact

734 Blackwell Street
Anchorage, Alaska
info@domain.com
+33 (0) 101 0000
+33 (0) 102 0000
Mon. - Fri. 8AM - 6PM

Articles récents

projet flutter Forum28 avril 2025
Backup BDD Bash17 mars 2025
UE – TF1 se met à Unreal Engine ?17 mars 2025
Rife Wordpress Theme. Proudly Built By Apollo13