亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

événements envoyés par le serveur HTML5

événement Server-Sent - messagerie unidirectionnelle

L'événement Server-Sent fait référence à la page Web qui re?oit automatiquement les mises à jour du serveur.

Cela était également possible auparavant, si la page Web devait demander si une mise à jour était disponible. En envoyant des événements via le serveur, les mises à jour peuvent arriver automatiquement.

Exemples?: mises à jour Facebook/Twitter, mises à jour de valorisation, nouveaux articles de blog, résultats d'événements, etc.

Ce qui suit est un exemple de code sur W3School, comprenant du code JavaScript c?té client et du code PHP c?té serveur?:

var source = new EventSource("demo_sse.php");

source.onmessage = function(event) {

Document.getElementById("result").innerHTML += event.data + "< ; br />";

};

Ce code récupère en continu les données de demo_sse.php et affiche le résultat vers l'ID de dans le div de résultat.

<?php

header('Content-Type?: texte/event-stream');

header('Cache-Control: no-cache');

$time = date('r');

echo "data?: L'heure du serveur est?: {$time}nn";

flush();

?>

Ce code renvoie l'heure actuelle du serveur au client. Enfin, des résultats similaires aux suivants sont affichés sur la page client?:

L'heure du serveur est?: Fri, 29 ao?t 2016 02:03:21 +0800

L'heure du serveur est?: Fri, 29 ao?t 2016 02:03:24 +0800

L'heure du serveur est?: vendredi 29 ao?t 2016 02:03:27 +0800

L'heure du serveur est?: vendredi 29 ao?t 2016 02 : 03:30 +0800

L'heure du serveur est?: vendredi 29 ao?t 2016 02:03:33 +0800

...

Recevoir la notification d'événement envoyée par le serveur

L'objet EventSource est utilisé pour recevoir la notification d'événement envoyée par le serveur?:

Instance

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


Exemple d'analyse?:

Créez un nouvel objet EventSource, puis spécifiez l'URL de la page pour envoyer la mise à jour (dans ce cas, "demo_sse.php")

Chaque fois qu'une mise à jour est re?ue, l'événement onmessage se produira

Lorsque l'événement onmessage se produit, transférez les données re?ues dans l'élément portant l'identifiant "result"

Détecter la prise en charge de l'événement envoyé par le serveur

Dans l'exemple suivant, nous avons écrit un morceau de code supplémentaire pour détecter la prise en charge par le navigateur des événements envoyés par le serveur?:

if(typeof(EventSource)!=="undefined")
{
// Le navigateur prend en charge Server-Sent
// Du code...
}
else
{
// Le navigateur ne prend pas en charge Server-Sent..
}

Exemple de code c?té serveur

Pour que l'exemple ci-dessus fonctionne, vous aurez également besoin d'un serveur capable d'envoyer des mises à jour de données (telles que comme PHP et ASP).

La syntaxe du streaming d'événements c?té serveur est très simple. Définissez l'en-tête "Content-Type" sur "text/event-stream". Vous pouvez maintenant commencer à envoyer le flux d'événements.

Exemple

<?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();
?>

Code ASP (VB) (demo_sse.asp)?:

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

Explication du code?:

Définissez l'en-tête "Content-Type" sur "text/event-stream"

Spécifiez que la page n'est pas mise en cache

Sortez la date d'envoi (en commen?ant toujours par "data:")

Actualiser les données de sortie sur la page Web




Formation continue
||
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>服務(wù)器推送SSE</title> <script type="text/javascript"> $(document).ready(function(){ //檢查瀏覽器支持情況 if(typeof(EventSource)!=="undefined") { //定義個(gè)對(duì)象,用于初始化事件源,這里用c.php這個(gè)頁(yè)面實(shí)現(xiàn) var eSource = new EventSource("c.php"); //detect message receipt eSource.onmessage = function(event) { //將收到的數(shù)據(jù)展示到頁(yè)面的ID=content元素中 document.getElementById("content").innerHTML += event.data+'<br />'; }; }else { document.getElementById("content").innerHTML="沒(méi)有收到服務(wù)端Server-Sent數(shù)據(jù)."; } }); </script> </head> <body> <div id="content"></div> </body> <p>服務(wù)器端c.php 頁(yè)面寫(xiě)在HTML外部</p> </html> <?php // 要聲明頭部 header("Content-Type: text/event-stream"); header("Cache-Control: no-cache"); // 直接打印當(dāng)前時(shí)間 echo "data: ".date('Y-m-d H:i:s').PHP_EOL; flush(); ?>
soumettreRéinitialiser le code