HTML5服务器发送事件(Server-Send Events)

HTML5服务器发送事件是允许获得来自服务器的更新。

server-sent事件-单向传递消息,表示网页自动获取来自服务器的更新。

其中有一个重要的对象,eventsource对象是用来接收服务器发送事件的通知。

实例:

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
<meta charset="utf-8" />
<style type="text/css"></style>
<script type="text/javascript"></script>

</head>
<body>
<section>
<h2>获取来自服务器的更新数据</h2>
<p id="pid"></p>
</section>
<script>
if (typeof (EventSource) !== "undefined") {//判断浏览器是否支持EventSource对象
var source = new EventSource("demoTimes.aspx");//创建一个新的source对象,然后规定发送更新的页面的 URL
source.onmessage = function (event) {//每接受到一次更新,就会生onmessage事件
document.getElementById("pid").innerHTML += event.data + "<br />";//
当 onmessage 事件发生时,把已接收的数据推入 id 为 "pid" 的元素中


};
}
else {
document.getElementById("pid").innerHTML = "Sorry!,您的浏览器不支持HTML5的Server-SendEvents事件";
}
</script>
</body>
</html>

demoTimes.aspx

Response.ContentType = "text/event-stream";//把报头ContentType设置为"Text/Event-Stream";
Response.Expires = -1;//规定不对页面进行缓存
DateTime dt = DateTime.Now;//获取当前日期时间
Response.Write("date:"+dt.Date.ToString());//输出发送日期
Response.Flush();//向网页刷新输出数据

Response.End();//代码执行到这里停下,不然会再输出其它html

原文地址:https://www.cnblogs.com/melao2006/p/4979862.html