基于Ajax的长连接

JS代码:

 1 <script>  
 2  function longPolling() {  
 3         $.ajax({  
 4             url: "testlp",  
 5             data: { "time": 2, "timeout": 3 },//time:假设传输数据时间,timenout:最大延迟  
 6             dataType:‘JSON‘,  
 7             success: function (data) {  
 8                 //输出data  
 9                 longPolling();  
10             }  
11         });  
12     }  
13 </script>  

服务器代码:

 1 public string testlp(int time, int timeout)  
 2        {  
 3             // 死循环 查询有无数据变化  
 4            while (true) {  
 5                System.Threading.Thread.Sleep(1000);// 休眠1000毫秒  
 6                int i = 1;  
 7                if (i > timeout) { break; }//最大延迟  
 8                else {  
 9                    i++;  
10                    int compl = 1; //模拟数据库时间  
11                    if (compl != time)//对比数据库中时间变化,此处一直进入if  
12                    {   
13                        string data= 数据库中数据  
14                        // 返回数据信息,请求时间、返回数据时间、耗时  
15                        //writer.print("result: " + i + ", response time: " + responseTime + ", request time: " + timed + ", use time: " + (responseTime - timed));  
16                        return data;  
17                        break; // 跳出循环,返回数据  
18                    }  
19                }  
20            }  
21            return "false";//不会执行  
22        }  

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。