zoukankan      html  css  js  c++  java
  • 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)跨站点请求伪造。

  • 相关阅读:
    [转载]小谈网络游戏同步
    [ASE][Daily Scrum]11.06
    [Proposal]Tank Battle——Infinite
    [proposal][app]Watch your time!
    [Proposal]Nano-Diary(纳日记)
    LaTeX中用BibTex管理参考文献
    matlab化简符号表达式
    placeholder颜色变化
    链接图片外边出现蓝框(IE8/IE9/IE10)
    图标排列
  • 原文地址:https://www.cnblogs.com/Iwillknow/p/3612320.html
Copyright © 2011-2022 走看看