HTML Server-Sent Event
- 上一页 HTML5 Web Workers
- 下一页 HTML Example
Ang Server-Sent event ay nagbibigay ng kapangyarihan sa web page na makakuha ng mga update mula sa server.
Server-Sent Event - One Way Messaging
Ang Server-Sent event ay tumutukoy sa awtomatikong pagkakaroon ng mga update ng web page mula sa server.
Maaari din itong gawin dati, pero ang web page ay kailangang tanungin kung mayroong mga magagamit na update. Sa pamamagitan ng Server-Sent event, ang mga update ay maaaring dumating ng awtomatiko.
Halimbawa: mga update ng Facebook/Twitter, pagtaas ng presyo ng bahagi, bagong blog post, resulta ng laban, at iba pa.
Suporta ng Browser
Ang mga numero sa talahanayan ay ipinakita ang unang browser na ganap na sumusuporta sa server-sent event.
API | |||||
SSE | 6.0 | Hindi suportado | 6.0 | 5.0 | 11.5 |
Tanggapin ang notipikasyon ng Server-Sent Event
Ang EventSource object ay ginagamit upang tanggapin ang mga notipikasyon ng pagpadala ng event ng server:
Eksemplo
var source = new EventSource("demo_sse.php"); source.onmessage = function(event) { document.getElementById("result").innerHTML += event.data + "<br>"; };
Halimbawa ng paliwanag:
- Lumikha ng isang bagong EventSource object, at tukoy ang URL ng pahina na magpadala ng update (sa halimbawa, "demo_sse.php").
- Bukas sa bawat pagtanggap ng isang pag-update, mangyayari ang event ng onmessage.
- Pagkatapos nang mangyari ang event ng onmessage, ilagay ang natanggap na datos sa elemento na may id na "result".
Suriin ang Suporta ng Server-Sent Event
Sa TIY eksemplo, isinulat namin ang isang dagdag na kodigo upang suriin ang suporta ng browser sa pagpadala ng event ng server:
kung typeof(EventSource) !== "undefined" { // Oo! Suportado ang pagpadala ng event ng server! // Mga kodigo... } // Paumanhin! Hindi suportado ang pagpadala ng event ng server! }
Mga halimbawa ng kodigo sa server
Para maipagpatuloy ang halimbawa sa ibang eksemplo, kailangan mong magpadala ng mga pinagkukunan ng pag-update ng server (halimbawa, PHP o ASP).
服务器端事件流的语法非常简单。请把 "Content-Type" 报头设置为 "text/event-stream"。现在,您可以开始发送事件流了。
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(); ?>
ASP 中的代码 (VB) (demo_sse.asp):
<% Response.ContentType = "text/event-stream" Response.Expires = -1 Response.Write("data: The server time is: " & now()) Response.Flush() %>
代码解释:
- 把报头 "Content-Type" 设置为 "text/event-stream"
- 规定不对页面进行缓存
- 输出要发送的日期(始终以 "data: " 开头)
- 向网页刷新输出数据
EventSource 对象
在上例中,我们使用 onmessage 事件来获取消息。不过还可以使用其他事件:
事件 | 描述 |
---|---|
onopen | 当通往服务器的连接被打开 |
onmessage | 当接收到消息 |
onerror | 当发生错误 |
- 上一页 HTML5 Web Workers
- 下一页 HTML Example