• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com专业计算机教程网站
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • html/xhtml
  • html5
  • CSS
  • XML/XSLT
  • Dreamweaver教程
  • Frontpage教程
  • 心得技巧
  • bootstrap
  • vue
  • AngularJS
  • HBuilder教程
  • css3
  • 浏览器兼容
  • div/css
  • 网页编辑器
  • axure
您的位置:首页 > 网页设计 >html5 > HTML5中MessageEvent以及SSE的规范

HTML5中MessageEvent以及SSE的规范

作者:匿名 字体:[增加 减小] 来源:互联网 时间:2018-12-03

本文主要包含HTML5,MessageEvent,SSE介绍等相关知识,匿名希望在学习及工作中可以帮助到您
1.MessageEvent接口

在HTML5规范中定义的新的通信方式,无论是WebSocket还是SSE,包括实现视频、音频通信的WebRTC,都是基于HTML5规范中定义的一个接口:MessageEvent。这是一个基于消息的事件。首先我们可以看一下在JavaScript中,传统的事件类型有哪些。

传统的DOM事件的基类主要包括:

(1)UIEvents:一般化的UI事件,其中鼠标事件和键盘事件都继承自UI事件;

(2)MouseEvents:一般化的鼠标事件,比如click事件、mousemove事件等,都是MouseEvents事件类型的实例;

(3)MutationEvents:一般化的DOM变动事件;

(4)HTMLEvents:一般化的HTML事件。

而HTML5中新增添的MessageEvent事件,是专门用来进行事件传输的事件。它除了包含Event的属性之外,还包含一些自己特有的属性。接口具体代码这里就不贴了,可以查看HTML5规范的第880页查看。

MessageEvent新增的重要属性包括:

(1)data:这里面存储的就是服务器发送的数据

(2)lastEventId:这里面存放的是最后一次的事件ID字符串

除此之外还包括origin、ports、source等属性。下面通过对SSE实现的分析,了解如何使用MessageEvent。

2、SSE和MessageEvent

SSE客户端的实现就使用了MessageEvent接口。

服务器在清单中的各个字段会按照一种规则被客户端进行解读,其中的id字段就对应着MessageEvent中的lastEventId。其中的data字段定义的数据通过解读后,就会被传送到MessageEvent的data字段,看如下代码:

var es = new EventSource("test.php");
es.addEventListener("message", function(e){
    console.log(e);
})

这里面我们直接使用事件对象的处理方法,在Chrome控制台中打印出这个事件对象的结构。可以看到该对象的data字段就是test.php中发送过来的数据,它的type是message,而其原型继承的就是MessageEvent。

此外还要注意,SSE服务器清单中的retry是一个内部属性,是不能通过JavaScript代码获取的。

3.EventSource接口

我们在SSE中使用的EventSource接口在HTML5规范中定义,代码可见HTML5规范的第882页。

从接口中可以看到,首先是定义的三个内置的事件处理程序:onopen/onmessage/onclose。此外还包括三个连接的状态readyState,CONNECTING表示正在建立连接,可能的情况是连接还没建立好或者连接中断客户端正在重连这个过程;OPEN表示连接开启可以传送数据的状态,CLOSED表示连接中断,并且客户端没有尝试重连。其中定义的方法我们可以看到只有close(),用来关闭连接。

以上就是HTML5中MessageEvent以及SSE的规范的详细内容,更多请关注微课江湖其它相关文章!

您可能想查找下面的文章:

  • HTML5知识点总结
  • HTML5的本地存储
  • HTML5本地存储之IndexedDB
  • Html5实现文件异步上传功能
  • Html5新标签datalist实现输入框与后台数据库数据的动态匹配
  • 详解HTML5 window.postMessage与跨域
  • HTML5拖放API实现拖放排序的实例代码
  • 解决html5中video标签无法播放mp4问题的办法
  • HTML5新特性 多线程(Worker SharedWorker)
  • Html5新增标签有哪些

相关文章

  • 2018-12-03xml跟html有关系吗?
  • 2018-12-03canvas实现爱心和彩虹雨的效果
  • 2018-12-03如果html传输全部使用json, browser 将会快很多?
  • 2018-12-03html5使用canvas实现跟随光标跳动的火焰效果_html5教程技巧
  • 2018-12-03HTML5中判断用户是否正在浏览页面的方法_html5教程技巧
  • 2018-12-03已经编写了两个网站的前端代码,在暑假里接下来是了解些后端知识,还是重点研究下js或者框架?
  • 2018-12-03利用h5实现获取用户地理定位
  • 2018-12-03HTML5本地存储Localstorage 的代码详细介绍
  • 2017-08-06HTML5 UTF-8 中文乱码的解决方法
  • 2018-12-03html5 自定义播放器核心代码_html5教程技巧

文章分类

  • html/xhtml
  • html5
  • CSS
  • XML/XSLT
  • Dreamweaver教程
  • Frontpage教程
  • 心得技巧
  • bootstrap
  • vue
  • AngularJS
  • HBuilder教程
  • css3
  • 浏览器兼容
  • div/css
  • 网页编辑器
  • axure

最近更新的内容

    • HTML5 MiranaVideo播放器 (代码开源)
    • html5规定在拖动被拖动数据时是否进行复制移动或链接的属性dropzone
    • 《web全栈工程师的自我修养》这本书里说:不要在简历中出现Div+CSS,会减分!请教为什么这样说?
    • html5跨域通讯之postMessage的用法总结_html5教程技巧
    • 字中字效果的实现【html5实例】_html5教程技巧
    • HTML5本地存储-Web SQL Database的详情介绍
    • H5移动端图片压缩上传开发流程
    • HTML中使用SVG与SVG预定义形状元素介绍
    • HTML5 Canvas自定义圆角矩形与虚线示例代码
    • 详细介绍基于HTML5的超级玛丽游戏demo的示例代码

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有