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秒内没有结果则返回
        }
        
    }
    ?>

  • 相关阅读:
    编程之道——高内聚低耦合
    虚拟机的安装
    Tomcat的安装与配置
    Spring(十)--Advisor顾问
    Spring(九)--通知
    Spring(八)-- 代理设计模式
    Spring(七)--Spring JDBC
    Spring(六)--Spring配置文件之间的关系
    Spring(五)--autowire自动装配和spel
    Spring(四)--bean的属性赋值
  • 原文地址:https://www.cnblogs.com/xiongwei89/p/2981170.html
Copyright © 2011-2022 走看看