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