广

JavaScript

  • IOS开发
  • android开发
  • PHP编程
  • JavaScript
  • ASP.NET
  • ASP编程
  • JSP编程
  • Java编程
  • 易语言
  • Ruby编程
  • Perl编程
  • AJAX
  • 正则表达式
  • C语言
  • 编程开发

    几种web服务器端推送技术的简单介绍

    2018-04-16 10:57:46 次阅读 稿源:互联网
    零七广告

    技术实现方案

    • Ajax轮询
    • Ajax长轮询
    • websocket
    • server-sent-events

    Ajax轮询

    实践简单,利用XHR,通过setInterval定时发送请求,但会造成数据同步不及时及无效的请求,增加后端处理压力。

    setInterval(function() { $.ajax({ url: 'http://api.3g.qq.com', success: function() { //code from here } }); }, 3000);

    Ajax长轮询

    Ajax轮询基础上做的一些改进,在没有更新的时候不再返回空响应,而且把连接保持到有更新的时候,客户端向服务器发送Ajax请求,服务器接到请求后hold住连接,直到有新消息才返回响应信息并关闭连接,客户端处理完响应信息后再向服务器发送新的请求,通常把这种实现也叫做comet

    function async() { $.ajax({ url: 'http://api.3g.qq.com', success: function() { async(); //code from here } }); }

    通常的做法是,在服务器的程序中加入一个死循环,在循环中监测数据的变动。当发现新数据时,立即将其输出给浏览器并断开连接,浏览器在收到数据后,再次发起请求以进入下一个周期。

    普通Ajax轮询与基于Ajax的长轮询原理对比:

    零七网部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与零七网进行文章共享合作。

    零七广告
    零七广告
    零七广告
    零七广告