Samouczek HTML

Strona główna HTML Wprowadzenie do HTML Edytory HTML Podstawy HTML Elementy HTML Atrybuty HTML Nagłówki HTML Akapity HTML Style HTML Formatowanie HTML Cytaty HTML Komentarze HTML Kolory HTML HTML CSS Linki HTML Obrazy HTML Ulubione HTML Tabele HTML Listy HTML Blok HTML i wbudowany Klasy HTML Identyfikator HTML Ramki HTML HTML JavaScript Ścieżki plików HTML Nagłówek HTML Układ HTML HTML Responsywne Kod komputerowy HTML Semantyka HTML Przewodnik po stylach HTML Jednostki HTML Symbole HTML Emotikony HTML Zestaw znaków HTML Kodowanie adresu URL HTML HTML a XHTML

Formularze HTML

Formularze HTML Atrybuty formularza HTML Elementy formularza HTML Typy danych wejściowych HTML Atrybuty wejściowe HTML Atrybuty formularza wejściowego HTML

Grafika HTML

Płótno HTML HTML SVG

Media HTML

Media HTML Wideo HTML Dźwięk HTML Wtyczki HTML HTML YouTube

API HTML

Geolokalizacja HTML Przeciągnij/upuść HTML Magazyn sieciowy HTML HTML Web Workers HTML SSE

Przykłady HTML

Przykłady HTML Quiz HTML Ćwiczenia HTML Certyfikat HTML Podsumowanie HTML Dostępność HTML

Odniesienia HTML

Lista znaczników HTML Atrybuty HTML Globalne atrybuty HTML Obsługa przeglądarki HTML Zdarzenia HTML Kolory HTML Płótno HTML HTML audio/wideo Dokumenty HTML Zestawy znaków HTML Kodowanie adresu URL HTML Kody językowe HTML Wiadomości HTTP Metody HTTP Konwerter PX na EM Skróty klawiszowe

API HTML SSE


Zdarzenia wysyłane przez serwer (SSE) umożliwiają stronie internetowej pobieranie aktualizacji z serwera.


Zdarzenia wysyłane przez serwer — przesyłanie wiadomości w jedną stronę

Zdarzenie wysyłane przez serwer ma miejsce, gdy strona internetowa automatycznie pobiera aktualizacje z serwera.

Było to również możliwe wcześniej, ale strona internetowa musiałaby zapytać, czy dostępne są jakieś aktualizacje. W przypadku zdarzeń wysyłanych przez serwer aktualizacje przychodzą automatycznie.

Przykłady: aktualizacje na Facebooku/Twitterze, aktualizacje cen akcji, kanały informacyjne, wyniki sportowe itp.


Obsługa przeglądarki

Liczby w tabeli określają pierwszą wersję przeglądarki, która w pełni obsługuje zdarzenia wysyłane przez serwer.

API
SSE 6.0 79.0 6.0 5.0 11.5

Otrzymuj powiadomienia o zdarzeniach wysyłane przez serwer

Obiekt EventSource służy do odbierania powiadomień o zdarzeniach wysyłanych przez serwer:

Przykład

var source = new EventSource("demo_sse.php");
source.onmessage = function(event) {
  document.getElementById("result").innerHTML += event.data + "<br>";
};

Wyjaśnienie przykładu:

  • Utwórz nowy obiekt EventSource i określ adres URL strony wysyłającej aktualizacje (w tym przykładzie „demo_sse.php”)
  • Za każdym razem, gdy odbierana jest aktualizacja, następuje zdarzenie onmessage
  • Gdy wystąpi zdarzenie onmessage, umieść otrzymane dane w elemencie z id="result"

Sprawdź obsługę zdarzeń wysyłanych przez serwer

W powyższym przykładzie tryit było kilka dodatkowych linii kodu, aby sprawdzić obsługę przeglądarki dla zdarzeń wysyłanych przez serwer:

if(typeof(EventSource) !== "undefined") {
  // Yes! Server-sent events support!
  // Some code.....
} else {
  // Sorry! No server-sent events support..
}


Przykład kodu po stronie serwera

Aby powyższy przykład działał, potrzebujesz serwera zdolnego do wysyłania aktualizacji danych (takiego jak PHP lub ASP).

Składnia strumienia zdarzeń po stronie serwera jest prosta. Ustaw nagłówek „Content-Type” na „text/event-stream”. Teraz możesz zacząć wysyłać strumienie wydarzeń.

Kod w PHP (demo_sse.php):

<?php
header('Content-Type: text/event-stream');
header('Cache-Control: no-cache');

$time = date('r');
echo "data: The server time is: {$time}\n\n";
flush();
?>

Kod w ASP (VB) (demo_sse.asp):

<%
Response.ContentType = "text/event-stream"
Response.Expires = -1
Response.Write("data: The server time is: " & now())
Response.Flush()
%>

Wyjaśnienie kodu:

  • Ustaw nagłówek „Content-Type” na „text/event-stream”
  • Określ, że strona nie powinna być buforowana
  • Wysłać dane do wysłania ( Zawsze zaczynaj od "dane:")
  • Opróżnij dane wyjściowe z powrotem na stronę internetową

Obiekt EventSource

W powyższych przykładach użyliśmy zdarzenia onmessage do otrzymywania wiadomości. Ale dostępne są również inne wydarzenia:

Events Description
onopen When a connection to the server is opened
onmessage When a message is received
onerror When an error occurs