介绍

介绍

这节和标准无关

本规范介绍了 EventSource 接口,它能使服务器通过 HTTP 或者使用专有的服务推送协议,来将数据发送给网页。

要使用这个接口,就要创建一个 EventSource 对象和注册一个事件监听器。

var source = new EventSource('updates.cgi');
source.onmessage = function (event) {
    alert(event.data)
};

在这服务端,脚本(在这个例子中是 "updates.cgi" )用以下的形式发送消息,并带有 text/event-stream 的 MIME 类型

data: This is the first message.

data: This is the second message, it
data: has two lines.

data: This is the third message.

可以通过使用不通的事件类型来分割事件。下面是一个有两个事件类型 “and” 和 “remove” 的流。

event: add
data: 73857293

event: remove
data:2153

event: add

data: 113411

而处理这样的一个流的脚本看起来像下面这样 (addHandlerremoveHandler 是接收事件这一个参数的函数)

var source = new EventSource('updatas.cgi');
source.addEventListener('add', addHandler, false);
source.addEventListener('remove', removeHandler, false)

默认的事件类型是 "message"

事件流请求能够使用 HTTP 301 和 307 来被重定向,就和 HTTP 请求一样。如果连接断开了,客户端就会重连。使用 HTTP 204 No Content 响应码,也能够告知客户端停止重连。

使用这个 API 而不是使用 XMLHttpRequest 或者 iframe 来模拟它,则是允许用户代理在用户代理实现者和网络运行商能够提前协调的情况下,更好的使用网络资源。

本文是 SSE W3C 标准翻译的第一篇,接下来会持续的翻译完成,后实现代码。有兴趣 SSE 的小伙伴可以联系我一起研究。

夫子阅读,分享自己所喜欢的文章或书籍,包括但不限于编程技术,兴趣爱好,小说名著等。欢迎大家的关注。

介绍_第1张图片
微信公众号

你可能感兴趣的:(介绍)