php+ajax 长轮询

2020-12-07 04:05

阅读:739

标签:style   blog   class   code   java   javascript   ext   color   set   cti   rgb   

最近在做项目时要做一个即时提醒功能,第一次做没思路。就百度了下。发现好多都说的模糊不清。我整理了下发出来大家指点下

jquery 代码:

这里使用使用ajax请求test页面获取success的值,请求超时时间为20秒。在20秒内若没数据返回则一直保持连接

soscw.com,搜素材
$(function(){
        $("#btn").bind(‘click‘,{btn:$(‘#btn‘)},function(e){
            $.ajax({
               type: ‘POST‘,
               dataType: ‘json‘,               
               url: ‘test.php‘,
               timeout: ‘20000‘,//请求超时时间
                 data: {time: ‘2000000‘},// 每次请求等待时间
                 success: function(data,status){
                   if(data.success == ‘1‘){
                   $("#msg").append(‘
[有数据]‘+data.text); e.data.btn.click(); } // 未从服务器中获的数据 if(data.success == ‘0‘){ $("#msg").append(‘
[无数据]‘); e.data.btn.click(); } }, // ajax超时,继续查询 error:function(XMLHttpRequest,textStatus,errorThrown){ if(textStatus == "timeout"){ $("#msg").append(‘超时‘); e.data.btn.click(); } } }); }); });
soscw.com,搜素材

php代码:

soscw.com,搜素材
if(empty($_POST[‘time‘])) exit();
  set_time_limit(0);// 无限请求超时时间
  usleep($_POST[‘time‘]);// 等待时间
  while(true){
      $i++;
      $rand = rand(1,999);
      if($rand ){
          $arr = array(‘success‘=>‘1‘,‘name‘=>‘有值‘,‘text‘=>$rand);
          echo json_encode($arr);
          exit();
      }else{
      $arr = array(‘success‘=>‘0‘,‘name‘=>‘无值‘,‘text‘=>$rand);
      echo json_encode($arr);
      exit();
    }
}
soscw.com,搜素材

php+ajax 长轮询,搜素材,soscw.com

php+ajax 长轮询

标签:style   blog   class   code   java   javascript   ext   color   set   cti   rgb   

原文地址:http://www.cnblogs.com/MGer-PHP/p/3701573.html


评论


亲,登录后才可以留言!