HTTP 服务器端事件
服务器端事件标准化了我们从服务器流式传输数据到客户端的方式。要在 Web 应用程序中使用服务器端事件,需要向文档中添加 <eventsource> 元素。
<eventsource> 元素的 src 属性应指向一个应提供持续 HTTP 连接的 URL,该 HTTP 连接发送包含事件的数据流。
该 URL 将指向一个 PHP、PERL 或 Python 脚本,该脚本会持续处理发送事件数据。以下是预计服务器时间的 Web 应用程序的简单示例。
你可以尝试运行以下代码来了解如何在 HTML5 中使用服务器端事件。
示例
<!DOCTYPE HTML> <html> <head> <script type="text/javascript"> document.getElementsByTagName("eventsource")[0].addEventListener("server-time", eventHandler, false); function eventHandler(event){ // Alert time sent by the server document.querySelector('#ticker').innerHTML = event.data; } </script> </head> <body> <div id="sse"> <eventsource src="/cgi-bin/ticker.cgi" /> </div> <div id="ticker" name="ticker"> [TIME] </div> </body> </html>
最后,以下是 perl 中编写的 ticker.cgi −
#!/usr/bin/perl print "Content-Type: text/event-stream
"; while(true){ print "Event: server-time
"; $time = localtime(); print "Data: $time
"; sleep(5); }
广告