Chargement...

HTML Server-Sent Events (SSE)

Auparavant, les Web Workers exécutaient JavaScript dans un thread d’arrière-plan et parlaient à la page avec postMessage — CPU local, pas de flux serveur. Cette leçon quitte le calcul hors-thread et présente le SSE : le serveur pousse des mises à jour texte via HTTP. Portée pratique — ouvrir, écouter, push unidirectionnel — pas de serveurs de flux Node.

Pourquoi le SSE dans un cours HTML

Les débutants ont besoin de scores ou logs en direct sans protocole socket sur mesure. Le SSE est la première API courante pour pousser du texte via HTTP. Après les workers, la division diffère : le serveur possède le flux ; le script de page possède EventSource et le DOM.

Réponse directe

1) new EventSource("/events"). 2) onmessage et e.data. 3) Mettez à jour le DOM sur la page. 4) onerror. 5) Unidirectionnel. 6) WebSockets pour le duplex ; polling si rare ; Workers pour le CPU local.

📊 SSE vs WebSocket vs Worker

Topic SSE (this lesson) WebSocket Web Worker (prev)
Typical role Server→browser text stream Full duplex messages Local off-thread compute
Browser entry EventSource(url) new WebSocket(url) new Worker(url or Blob)
Direction One-way (server push) Two-way Page ↔ worker (no server required)
Transport idea HTTP text/event-stream WS protocol postMessage / onmessage
DOM updates On the page script On the page script On the page script only
This course depth Required (browser pattern) Contrast only Previous lesson
Not this lesson Full backend stream servers Chat product design SharedWorker fleets

Minuscule motif d’écoute EventSource

Côté navigateur seulement. /events doit être un vrai endpoint SSE ; sans serveur, erreur — enseigne quand même la forme de l’API.

EventSource listen pattern

html
HTML Code
<pre id="out">Waiting for stream…</pre>
<script>
const out = document.getElementById("out");
const es = new EventSource("/events");
es.onmessage = function (e) {
out.textContent = "Last update: " + e.data;
};
es.onerror = function () {
out.textContent = "SSE error or closed (need a real /events stream)";
};
</script>

Lire les appels d’écoute

  • EventSource ouvre un long flux HTTP
  • onmessage sur message
  • e.data est la charge texte
  • La page écrit dans pre
  • Contrairement aux Workers : pas de postMessage vers un thread d’arrière-plan
  • onerror attendu sans serveur
  • Gardez l’intro petite

Ajouter des lignes de flux à un journal

Les UI live ajoutent souvent chaque événement. Cette démo garde les dernières lignes dans une liste.

Append SSE lines to a log

html
HTML Code
<ul id="log"></ul>
<script>
const log = document.getElementById("log");
const es = new EventSource("/events");
es.onmessage = function (e) {
const li = document.createElement("li");
li.textContent = e.data;
log.appendChild(li);
while (log.children.length > 5) {
log.removeChild(log.firstChild);
}
};
es.onerror = function () {
if (!log.dataset.noted) {
log.dataset.noted = "1";
const li = document.createElement("li");
li.textContent = "Stream not available — wire a text/event-stream URL";
log.appendChild(li);
}
};
</script>

Lire l’idée du journal

  • Chaque onmessage crée un li
  • Limitez la liste
  • Toujours unidirectionnel
  • Pas un Web Worker
  • Des événements nommés existent ; message suffit
  • es.close() à la fin
  • Ensuite : XHTML

Choisir SSE, polling, sockets ou workers

  • Push fréquent de statut via HTTP : bon fit SSE
  • Rafraîchissement rare : le polling peut suffire
  • Chat bidirectionnel : WebSockets
  • Boucle locale lourde : c’étaient les Workers
  • Glisser une carte : c’était le DnD
  • Construire l’endpoint de flux backend : hors de cette intro

Pratique — ouvrir, écouter, contraster

  1. Lisez le snippet d’écoute.
  2. Survolez text/event-stream.
  3. Lisez le journal append.
  4. Phrase : Workers en local ; SSE du serveur.
  5. Phrase : SSE unidirectionnel ; WebSockets duplex.
  6. Optionnel URL réelle.
  7. Aperçu : XHTML.

Erreurs faciles

  • Attendre navigateur→serveur via EventSource
  • Confondre avec les Web Workers
  • Oublier le content-type event-stream
  • SSE pour des mises à jour trop rares
  • Ignorer onerror
  • Prendre l’intro pour un cours streaming backend complet
  • Mélanger EventSource avec Worker ou WebSocket

Résumé

  • Le SSE streame du texte serveur→navigateur via HTTP
  • EventSource, onmessage/onerror ; DOM sur la page
  • Push unidirectionnel ; WebSockets pour le duplex
  • Les Workers étaient du calcul local hors-thread ; cette leçon est le push serveur
  • Les vraies démos ont besoin de text/event-stream
  • Suivant : XHTML

🧠 Testez Vos Connaissances

Prêt à Commencer

Testez Vos Connaissances

Mettez-vous au défi avec ce quiz interactif et voyez à quel point vous comprenez le sujet

❓
5
Questions
🎯
70%
Pour Réussir
♾️
∞
Temps
🔄
∞
Tentatives

📝 Instructions

  • Lisez chaque question attentivement
  • Sélectionnez la meilleure réponse pour chaque question
  • Vous pouvez refaire le quiz autant de fois que vous le souhaitez
  • Votre progression sera affichée en haut