ajax長輪詢實現即時聊天室

來源:互聯網
上載者:User

標籤:des   style   java   color   資料   javascript   

前段js:

//處理ajax長輪詢
$(function(){
ask_order();
function ask_order(){
var ask_action = "{:U(‘index/order_commet‘,array(‘time‘=>10,‘desk_id‘=>$desk_id))}";
$.ajax({   
                 type:"GET",   
                 dataType:"json",   
                 url:ask_action,   
                 timeout:80000,     //ajax請求逾時時間80秒   
                 success:function(data,textStatus){   
                     //從伺服器得到資料,顯示資料並繼續查詢   
                     if(data.status=="1"){
//alert(data.data);
var html_str = "";
var result = data.data;
$(result).each(function(i) {
html_str += ‘<li>‘+result[i].goods_name+‘&nbsp;&nbsp;&nbsp;&nbsp;<a data-order="‘+result[i].order_id+‘" data-product="‘+result[i].goods_name+‘" class="little_delete" href="javascript:;">刪除</a></li>‘
});
$(‘.product_ordered‘).html(html_str);
                     }   
                  //未從伺服器得到資料,繼續查詢   
                     if(data.status=="0"){   
                          console.log(‘沒有資料‘);
                     }   
setTimeout(ask_order, 5000);//5000毫秒,自己定義延遲時間
                 } ,
              //Ajax請求逾時,繼續查詢   
              error:function(){   
                     setTimeout(ask_order, 5000);//5000毫秒,自己定義延遲時間
              }   
                    
             }); 
}
})

 

 

 

 

 

後台PHP:

//處理長輪訓方法。
public function order_commet(){
if(empty($_GET[‘time‘])){
die();
}
set_time_limit(0);
$limit_time = $_GET[‘time‘];
$desk_id = $this->desk_id;
$i = 0;
while (TRUE) {
usleep(500000);
$i++;
$result = $this->order_mod->get_order_by_desk($desk_id);
if($result[‘result‘] == 1){
$this->ajaxReturn(array(‘status‘=>1,‘data‘=>$result[‘data‘]));
die();
}
if($i == $limit_time || !$desk_id){
$this->ajaxReturn(array(‘status‘=>0,‘data‘=>‘無資料‘));
die();
}
}
}

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.