JavaScript数据推送

一、Comet:基于HTTP长连接的服务器推送技术

index.html代码如下:

<meta charset="utf-8">

<script type="text/javascript" src="http://apps.bding.com/libs/jquery/2.1.1/jquery.min.js"></script>

<h1>测试</h1>

<script type="text/javascript">

      $ajax({

         url:'data.php',

           dataType:"json",

           success:function(data){

               console.log(data);

           }

      });

     //前端每隔一段时间发送一次请求

</script>


data.php代码如下:

<? php

header("Content-Type:application/json;charset=utf-8");

header("Cache-Control:max-age=0"); //不缓存

$i = 0;

while($i<9){

     $i++;

     $res = array('success' => "ok","text"=>"我是测试文本");

     echo json_encode($res);

     ob_flush();//不缓存

     flush();

}

?>


二、基于WebSocket的推送方案

socket.io


三、SSE(Server-Send Event):服务器推送数据的新方式

建立服务器端的sse项目:

data.php代码如下:

<? php

header("Content-Type:text/event-stream;charset=utf-8");

header("Access-Control-Allow-Origin:http://127.0.0.1/");

echo "data:现在北京时间是".date('H:i:s')."\r\n\r\n";

?>


index.js代码如下:

var source;

function init(argument){

     source = new EventSource('http://localhost/sse/data.php');

     source.onopen = function(){

          console.log("连接已建立",this.readyState);

     }

     source.onmessage = function(event){

          console.log("从服务器时时获取的数据",event.data);

     }

     source.onerror = function(){

//     

     }

}

init();


index.html代码如下:

<meta charset="utf-8"/>

<script type="text/javascript" src="index.js"></script>





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值