Comet、SSE、Web Socket
来自《javascript高级程序设计 第三版:作者Nicholas C. Zakas》的学习笔记(十一)
Comet
Comet是一种更加高级的Ajax技术("服务器推送")。Ajax是一种从页面向服务器请求数据的技术,而Comet则是一种服务器向页面推送数据的技术。Comet能够让信息近乎实时地被推送到页面上,非常适合处理体育比赛的分数和股票报价。
有两种实现Comet的方式:长轮询和流。长轮询,即浏览器定时向服务器发送请求,看有没有更新的数据。想必你肯定会问,有长轮询肯定也有短轮询,怎么不讲讲短轮询。呵呵,别急嘛~
不论是长轮询还是短轮询,浏览器都要在接收数据之前,先发起对服务器的连接。两者最大的区别在于服务器如何发送数据。短轮询是服务器立即发送响应,无论数据是否有效,而长轮询是等待发送响应。轮询的优势是所有浏览器都支持,因为使用XHR对象和setTimeOut(0就能实现。而你要做的就是决定什么时候发送请求。
而HTTP流不同于以上两种轮询。因为它在页面的整个生命周期内只使用一个HTTP连接。具体来说就是浏览器向服务器发送一个请求,而服务器保持连接打开,然后周期性地想浏览器发送数据。
SSE:服务器发送事件是一种实现Comet交互的浏览器API,既支持长轮询、也支持http流。
web socket:在单独的持久连接上提供全双工、双向通信。必须给websocket构造函数传入绝对URL、同源策略对web socket不适用,因此可以通过它打开任何站点连接。至于是否会与某个域中页面通信,完全取决于服务器。
具体信息读者可以上网查阅。本博文只是作为了解之用,至少当你需要用到此知识时,不至于没有头绪。~在大数据、大信息化时代,毕竟获取知识的能力才是最难能可贵的,仅存记忆力的知识当真不靠谱,但是不可不承认的是能提供方向性的指导。
科普知识:CSRF(Cross-Site Request Forgery)跨站点请求伪造。
Comet、SSE、Web Socket的更多相关文章
- js系列教程11-json、ajax(XMLHttpRequest)、comet、SSE、WebSocket全解
js系列教程11-json.ajax(XMLHttpRequest).comet.SSE.WebSocket全解:https://blog.csdn.net/luanpeng825485697/art ...
- [转]SIMD、MMX、SSE、AVX、3D Now!、NEON
转载来源<[整理]SIMD.MMX.SSE.AVX.3D Now!.neon> 本文摘取部分内容,详细请看原文. SIMD NEON是通用的SIMD(单指令多数据)引擎. 对于SISD,每 ...
- Comet、SSE、技术
1.概念: 利用长时间保留的HTTP请求(‘挂起的GET’)来让服务器向浏览器推送数据的技术,经常被称为Comet. SSE让服务器可以向客户端流式发送文本消息,比如服务器上生成的实时通知或更新.
- [C] zintrin.h : 智能引入intrinsic函数。支持VC、GCC,兼容Windows、Linux、Mac OS X
博客来源:http://blog.csdn.net/zyl910/article/details/8100744 现在很多编译器支持intrinsic函数,这给编写SSE等SIMD代码带来了方便.但是 ...
- Web端即时通讯技术盘点:短轮询、Comet、Websocket、SSE
1. 前言 Web端即时通讯技术因受限于浏览器的设计限制,一直以来实现起来并不容易,主流的Web端即时通讯方案大致有4种:传统Ajax短轮询.Comet技术.WebSocket技术.SSE(Serve ...
- Ajax、Comet、HTML 5 Web Sockets技术比较分析
最近因为考虑研究B/S结构网站即时消息处理 参考了 JAVA怎么样实现即时消息提醒http://bbs.csdn.net/topics/330015611http://www.ibm.com/deve ...
- 轮询、长轮询与Web Socket的前端实现
Web Socket 应用场景:实现即时通讯:如股票交易行情分析.聊天室.在线游戏等,替代轮询和长轮询 轮询 轮询是在特定的的时间间隔(如每1秒),由浏览器对服务器发出HTTP request,然后由 ...
- socket、web socket
WEB SOCKET: 说明:为浏览器提供双工异步通信,浏览器可以向服务端发送消息.服务端也可以向浏览器发送消息. SOCKET: 说明:网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接 ...
- web socket RFC6455 frame 打包、解包
#ifndef __APP_WEBSOCKET_FRAME_H__ #define __APP_WEBSOCKET_FRAME_H__ #include "memory.hpp" ...
随机推荐
- ActiveMQ(5.10.0) - Connection Configuration URI
An Apache ActiveMQ connection can be configured by explicitly setting properties on the ActiveMQConn ...
- jQuery之手势密码
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...
- LeftOuterJoin和OuterApply性能比较(转)
建立测试环境: 建立一个表Department和Employee,并向Department插入50W条记录,向Employee插入200W条记录, 我们就拿[统计DepartmentID 从15000 ...
- 【poj4011】Automated Telephone Exchange
题目:Automated Telephone Exchange poj URL:http://poj.org/problem?id=4011 原题如下图: 题意: 就是一个三位数减去两个小于或等于99 ...
- linux 常用软件安装-目录
nginx apache php mysql oracle tomcat memcached mongodb sqlserver
- spring heibernate 调用存储过程
一:参考网址 http://sunbin123.iteye.com/blog/1007556 二:示例 @Autowired @Qualifier("jdbcTemplate") ...
- C# 导出 Excel
/// <summary> /// 导出Excel /// </summary> public void ExportExcel() { #region 添加引用 Micros ...
- encodeURIComponent与encodeURI的区别
encodeURIComponent() -->把字符串编码为 URI 组件. encodeURI() -->把字符串编码为 URI. var te ...
- Review PHP设计模式之——单例模式
单例模式: class Single { private static $_instance; private function __construct(){ //define method as p ...
- Catalyst揭秘 Day6 Physical plan解析
Catalyst揭秘 Day6 Physical plan解析 物理计划是Spark和Sparksql相对比而言的,因为SparkSql是在Spark core上的一个抽象,物理化就是变成RDD,是S ...