if(typeof(EventSource)!==“undefined”)
{
// Yes! Server-sent events support!
// Some code…
}
else
{
// Sorry! No server-sent events support…
}
服务器端代码实例
为了让上面的例子可以运行,您还需要能够发送数据更新的服务器(比如 [PHP](() 和 ASP)。
服务器端事件流的语法是非常简单的。把 “Content-Type” 报头设置为 “text/event-stream”。现在,您可以开始发送事件流了。
[PHP](htt 《大厂前端面试题解析+Web核心总结学习笔记+企业项目实战源码+最新高清讲解视频》无偿开源 徽信搜索公众号【编程进阶路】 p://www.aseoe.com/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: " & now())
Response.Flush()
%>
新建一个前端学习qun438905713,在群里大多数都是零基础学习者,大家相互帮助,相互解答,并且还准备很多学习资料,欢迎零基础的小伙伴来一起交流。
代码解释:
-
把报头 “Content-Type” 设置为 “text/event-stream”
-
规定不对页面进行缓存
-
输出发送日期(始终以 "data: " 开头)
-
向网页刷新输出数据
EventSource 对象
在上面的例子中,我们使用 onmessage 事件来获取消息。不过还可以使用其他事件:
事件 | 描述 |
---|---|
onopen | 当通往服务器的连接被打开 |
onmessage | 当接收到消息 |