九、事件推送

九、事件推送

正常情况下,只能够从浏览器端发送消息到服务器端,服务器接收并返回数据,然后关闭连接

服务器想要主动发送信息到浏览器端,无法实现,于是 HTML5 提供了一个叫做 EventSource 的函数,用于主动向前端推送消息

1
console.log(EventSource);

UYNtgJ.png

9.1 初始化

worker一样,需要初始化

并且也需要服务器环境支持

使用方式:

1
2
var es = new EventSource(path);
path:接口
1
2
// 实例化 EventSource
var es =new EventSource("/hehe"); // 自己写的nodejs文件 server.js中的接口为 /hehe

非服务器环境下:

UYNr4O.png

服务器环境下:

在没有传递参数的时候:

1
var es =new EventSource();

UYN68e.png

传递参数后:

1
var es =new EventSource("/hehe");

UYNI58.png

1
2
3
4
// 接收信息
es.onmessage = function(e){
console.log(e.data);
}

UYN78g.png

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<ul id="list"></ul>

// 获取 ul
var ul = document.getElementById("list");
// 接收信息
es.onmessage = function(e){
// console.log(e.data); // 每隔 3s 输出一个“呵呵”
// 创建元素
var li = document.createElement("li");
// 设置内部文本
li.innerHTML = e.data;
// 追加元素
ul.appendChild(li);
}

UYNvV0.png

点击查看

本文标题:九、事件推送

文章作者:Mango

发布时间:2020年07月14日 - 13:18:17

最后更新:2020年07月14日 - 13:27:10

原始链接:https://mango185.github.io/post/91aa04f4.html

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。

-------------------本文结束 感谢您的阅读-------------------