码迷,mamicode.com
首页 > Web开发 > 详细

php+ajax 长轮询

时间:2014-05-01 11:09:57      阅读:416      评论:0      收藏:0      [点我收藏+]

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

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

jquery 代码:

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

bubuko.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(‘<br>[有数据]‘+data.text);
                   e.data.btn.click();
                }
                   // 未从服务器中获的数据
                     if(data.success == ‘0‘){
                      $("#msg").append(‘<br>[无数据]‘);
                      e.data.btn.click();
                   }
                },
                                // ajax超时,继续查询
                error:function(XMLHttpRequest,textStatus,errorThrown){
                     if(textStatus == "timeout"){
                        $("#msg").append(‘超时‘);
                        e.data.btn.click();
                     }
                }
          });
        });
    });
bubuko.com,布布扣

php代码:

bubuko.com,布布扣
if(empty($_POST[‘time‘])) exit();
  set_time_limit(0);// 无限请求超时时间
  usleep($_POST[‘time‘]);// 等待时间
  while(true){
      $i++;
      $rand = rand(1,999);
      if($rand < 150){
          $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();
    }
}
bubuko.com,布布扣

php+ajax 长轮询,布布扣,bubuko.com

php+ajax 长轮询

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

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!