Comet 反Ajax: 基于jQuery与PHP实现Ajax长轮询(LongPoll)

阅读更多

传统的AJAX轮询方式,客服端以用户定义的时间间隔去服务器上查询最新的数据。种这种拉取数据的方式需要很短的时间间隔才能保证数据的精确度,但太短的时间间隔客服端会对服务器在短时间内发送出多个请求。

 

反转AJAX,就是所谓的长轮询或者COMET。服务器与客服端需要保持一条长时间的请求,它使得服务器在有数据时可以返回消息给客户端。

 

Comet是一种服务器向页面推送数据的技术,Comet能让信息近乎实时的被推送到页面上。

 

前端 index.html




    
    jQuery与PHP实现Ajax长轮询
    
    


    

后端 comet.php

"1",'name'=>'xiaocai','text'=>$rand);      
        echo json_encode($arr);      
        exit();      
    }      
          
    //服务器($_POST['time']*0.5)秒后告诉客服端无数据      
    if($i==$_POST['time']){      
        $arr=array('success'=>"0",'name'=>'xiaocai','text'=>$rand);      
        echo json_encode($arr);      
        exit();      
    }      
}

 

运行效果:在图中可以看到无数据的请求时间达到了10S,在10S的请求中若获得数据则请求关闭。

Comet 反Ajax: 基于jQuery与PHP实现Ajax长轮询(LongPoll)_第1张图片

 

 

更多参考:

PHP:ServerPush (Comet推送) 技术的探讨

 

原文转自: Comet 反Ajax: 基于jQuery与PHP实现Ajax长轮询(LongPoll)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(Comet 反Ajax: 基于jQuery与PHP实现Ajax长轮询(LongPoll))