SSE(Server-Sent Events)是一个能让浏览器通过HTTP协议自动获取服务器端更新的技术。这种技术封装在
SSE EventSource API里,打开链接可以阅读。SSE EventSource API 被W3C制定为HTML5的一部分。
Browser
Supported
Notes
Internet Explorer
No
IE not supported
Mozilla Firefox(火狐)
Yes
version 6.0
Google Chrome(谷歌)
Yes
GC is supported
Opera(欧朋)
Yes
version 11
Safari(游猎)
Yes
version 5.0
我几乎没在网上看到有人提过这一点,这里仅仅是我的理解。当一个使用了SSE的HTML页面发布并且在支持的浏览器端载入成功后。那么带有SSE的页面就会让浏览器建立一种访问机制——在规定的间隔时间不停地访问SSE指定服务器中的数据,如果服务器端数据有更新则获取并输出到当前的html5页面上,这个过程会存在延迟存在,延迟时间会和服务器类型、数据大小、浏览器支持情况等有关。
下面这张图片是我使用SSE连接jsp成功后,再关闭服务器出现的情况,读者也可以自己试,会发现这些错误出现是有间隔时间的,这就是延迟,自己的大概3秒。
这个文件的MIME类型要设置为text/heml,它是被浏览器响应的。测试当前浏览器是否支持SSE:
if(typeof(EventSource) !=="undefined" )
{
alert("Support" ) ;
}
else
{
alert("Not Support" ) ;
}
EventSource对象用于接受服务器端发送事件通知,每当source接受到来着sseserver页面的更新消息,就会触发onmessage事件,然后会将数据推入id为”result”的元素中。除了onmessage事件,EventSource对象还有onerror和onopen。
事件
描述
onopen
当通往服务器的连接被打开
onmessage
当接收到消息
onerror
当发生错误
var source=new EventSource("sseserver.jsp" );
source.onmessage=function (event)
{
document.getElementById("resu