HTML 5 服务器发送事件

Server-Sent 事件 - 单向消息传递

Server-Sent 事件指的是网页自动获取来自服务器的更新。

以前也可能做到这一点,前提是网页不得不询问是否有可用的更新。通过服务器发送事件,更新能够自动到达。

例子:Facebook/Twitter 更新、估价更新、新的博文、赛事结果等。

浏览器支持

所有主流浏览器均支持服务器发送事件,除了 ie。

接收 Server-Sent 事件通知

EventSource 对象用于接收服务器发送事件通知。

案例:

建立一个demo_sent.jsp文件,代码如下:

<%@ page contentType="text/event-stream; charset=UTF-8"%>
<%
    response.setHeader("Cache-Control", "no-cache");
    out.print("data: >> server Time" + new java.util.Date() );
    out.flush();%>

demo.html:

复制代码

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
 <script src="http://code.jquery.com/jquery-1.8.2.js" language="javascript" type="text/javascript"></script>
 <script language="javascript" type="text/javascript">        if (!!window.EventSource) {            var source = new EventSource('demo_sent.jsp');
            source.addEventListener('message', function (e) {
                console.log(e.data);
            }, false);
        }        else {
            alert("EventSource is not supported, using xhr polling instead");
        }    </script>
</body>

</html>

复制代码

上面的图就是实现的效果,有点神奇,但是查看后台就不觉其神奇了,

实际上他会在后头不断的发生GET请求,这下明白了,所谓的server send不过也就是多了另外一个进程的帮助在后台发生请求然后通过回调添加到js进程进程时间线嘛···~~~这跟Ajax的实现原理不谋而合。

------------------后续,后来查看下web Worker也是这么干,

看这里:http://www.w3school.com.cn/tiy/t.asp?f=html5_webworker

 

所以说原理性的事物才是最重要的。

转载于:https://my.oschina.net/fuluS/blog/311769

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值