文档章节

HTML 5 服务器发送事件

傅长路
 傅长路
发布于 2014/09/09 16:33
字数 391
阅读 18
收藏 0

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

 

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

本文转载自:http://www.cnblogs.com/super-d2/archive/2012/10/11/2720678.html

傅长路
粉丝 0
博文 32
码字总数 3392
作品 0
南京
程序员
私信 提问
SpringBoot之WebSocket和SSE

前言: 传统的网页都是浏览器向服务器“查询”数据,但是很多场合,最有效的方式是服务器向浏览器“发送”数据。比如,每当收到新的电子邮件,服务器就向浏览器发送一个“通知”,这要比浏览...

王念博客
2016/10/12
670
0
jupyter notebook的通信

提示用户输入一段代码,当用户输入以后执行。这种模式经常被称为REPL(交互式开发环境),或者Read-Eval-Print-Loop(读取﹣求值﹣输出循环). IPython 内核 所有其它接口,包括Notebook,Qt控制...

gg5d
2017/12/03
0
0
慕课网node基础(一)

浏览器与服务器的交互 1.Chrome搜索自身的DNS缓存 2.搜索操作系统自身的DNS缓存(浏览器没有找到缓存或缓存已经失效) 3.读取本地的Host文件 4.浏览器发起一个DNS的一个系统调用 宽带运营商服...

丁许
2017/12/11
0
0
开源Java AJAX组件--ItsNat

ItsNat, Natural AJAX,是一个开源Java AJAX组件web应用框架。 ItsNat实现了“浏览器就是服务器”(The Browser Is The Server TBITS),在服务器端模仿了一个一般概念的W3C Java 浏览器,客户端...

匿名
2009/02/24
1K
0
HTML5 WebSockets+NodeJs 实例教程

HTML 5 中WebSockets是极其重要的部分,它的一个好处之一是减少了不必要的网络流量。它主要是用于在客户机和服务器之间建立单一的双向连接。这意味着客户只需要发送一个请求到服务端,那么服务...

JayPark不作死
2014/02/20
5K
0

没有更多内容

加载失败,请刷新页面

加载更多

PostgreSQL 11.3 locking

rudi
今天
5
0
Mybatis Plus sql注入器

一、继承AbstractMethod /** * @author beth * @data 2019-10-23 20:39 */public class DeleteAllMethod extends AbstractMethod { @Override public MappedStatement injectMap......

一个yuanbeth
今天
10
1
一次写shell脚本的经历记录——特殊字符惹的祸

本文首发于微信公众号“我的小碗汤”,扫码文末二维码即可关注,欢迎一起交流! redis在容器化的过程中,涉及到纵向扩pod实例cpu、内存以及redis实例的maxmemory值,statefulset管理的pod需要...

码农实战
今天
4
0
为什么阿里巴巴Java开发手册中不建议在循环体中使用+进行字符串拼接?

之前在阅读《阿里巴巴Java开发手册》时,发现有一条是关于循环体中字符串拼接的建议,具体内容如下: 那么我们首先来用例子来看看在循环体中用 + 或者用 StringBuilder 进行字符串拼接的效率...

武培轩
今天
8
0
队列-链式(c/c++实现)

队列是在线性表功能稍作修改形成的,在生活中排队是不能插队的吧,先排队先得到对待,慢来得排在最后面,这样来就形成了”先进先出“的队列。作用就是通过伟大的程序员来实现算法解决现实生活...

白客C
今天
81
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部