美文网首页
JavaScript数据推送

JavaScript数据推送

作者: check_ping | 来源:发表于2017-05-06 16:27 被阅读0次

    1.Comet:基于HTTP长链接的服务器推送技术

    服务器端会主动以异步的方式向客户端程序推送数据,而不需要客户端显式的发出请求。

    当然我们在客户端也可以模拟实现Comet方式:

    function conn(){

          $.ajax({

               url:'./data/index.php',

               type:'json',

               success: function(res) {

                     console.log(res);

                     conn();                           // 通过回调函数的方式一直发送请求

               }

          })

    }

    conn();

    2.基于WebSocket的推送方案

    comet可以一定程度上模拟双向通信,但效率较低.HTML5定义了WebSocket协议,能更好的节省服务器资源和带宽并达到实时通讯.

    varws= new WebSocket('ws:localhost:8081/websocket/');

    ws.onopen = function(){

          ws.send("发送数据");

          console.log("已连接")

    };

    ws.onmessage = function(evt){

          console.log("数据已接受:"+evt.data);

    };

    ws.onclose= function(){

          console.log("连接已关闭...");

    };

    3.SSE:服务器推送数据的新方式

    SSE既能像WebSocket协议一样,每当数据发生变化,服务器就向浏览器发送一个"通知",这要比浏览器按时向服务器查询更有效率,而且还支持http协议,不会像WebSocket那样必须在ws协议下通信.

    var source = newEventSource('/data/sse.php');

    source.onopen = function() {

          console.log('已连接',this.readyState);

    };

    source.onmessage = function(event) {

          console.log("正在接受服务端的数据"+event.data);

    };

    source.onerror = function() {

    }

    相关文章

      网友评论

          本文标题:JavaScript数据推送

          本文链接:https://www.haomeiwen.com/subject/svtytxtx.html