zoukankan      html  css  js  c++  java
  • ajax长轮询实例

    html页面:

    <script>
                        
                $(function(){

                    function test(){
                        $url="xx.php";
                        comet=$.post($url,function(data){
                            if(data==null){

              comet.abort();                  //关闭之前的comet ajax请求
                                test();                      //如果返回空则继续请求
                                return;
                            }
                            //$('#sub').append('<div>'+data.uid+'</div>');
                            $('#sub').html(data.uid);                //如果返回成功则写到页面里
                            comet.abort();                   //关闭之前的comet ajax请求
                            test();                       //继续发起一个请求

                        },"json")
                        
                    }
                    
                    test();                          //启动该方法

                })
            </script>

    后台php页面:

    <?php
    set_time_limit(0);          //无限请求超时时间  
    $i=0;

    //无限循环
    while(true){
        $i++;
        $curl=curl_init();
        curl_setopt($curl,CURLOPT_URL,"http://127.0.0.1/dsb.php");
        curl_setopt($curl,CURLOPT_RETURNTRANSFER,1);
        $data=curl_exec($curl);
        sleep(1);                                  //用sleep来解决cpu压力

        if($data==1){
            echo json_encode(array("uid"=>date('Y-m-d:H:i:s',time())));      //如果匹配成功则返回结果
            return;
        }
        if($i==10){
            exit;              //如果10秒内没有结果则返回
        }
        
    }
    ?>

  • 相关阅读:
    软件工程二人组队开发第一周
    软件工程第五周
    这学期的目标
    软件工程第四周的总结
    二维数组的最大子数组和 时间复杂度:O(n的四次方)
    10.tesseract
    mysql存储过程和函数
    mysql触发器
    9.selenium
    mysql练习
  • 原文地址:https://www.cnblogs.com/xiongwei89/p/2981170.html
Copyright © 2011-2022 走看看