jquery与php结合如何实现AJAX长轮询
发表于:2025-11-07 作者:千家信息网编辑
千家信息网最后更新 2025年11月07日,这篇文章主要介绍了jquery与php结合如何实现AJAX长轮询,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。HTTP是无状态、单向的
千家信息网最后更新 2025年11月07日jquery与php结合如何实现AJAX长轮询
这篇文章主要介绍了jquery与php结合如何实现AJAX长轮询,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。
HTTP是无状态、单向的协议,用户只能够通过客服端向服务器发送请求并由服务器处理发回一个响应。若要实现聊天室、WEBQQ、在线客服、邮箱等这些即时通讯的应用,就要用到" 服务器推送技术(Comet)"。
传统的AJAX轮询方式,客服端以用户定义的时间间隔去服务器上查询最新的数据。种这种拉取数据的方式需要很短的时间间隔才能保证数据的精确度,但太短的时间间隔客服端会对服务器在短时间内发送出多个请求。
反转AJAX,就是所谓的长轮询或者COMET。服务器与客服端需要保持一条长时间的请求,它使得服务器在有数据时可以返回消息给客户端。
XHTML
jQuery
这里使用AJAX请求data.php页面获得'success'的值,请求的时间达到80秒。在这80秒中若没有从服务端返回'success'则一直保持连接状态,直到有数据返回或'success'的值为0才关闭连接。在关闭连接后在继续下一次的请求。
$(function(){ $("#btn").bind("click",{btn:$("#btn")},function(evdata){ $.ajax({ type:"POST", dataType:"json", url:"data.php", timeout:80000, //ajax请求超时时间80秒 data:{time:"80"}, //40秒后无论结果服务器都返回数据 success:function(data,textStatus){ //从服务器得到数据,显示数据并继续查询 if(data.success=="1"){ $("#msg").append("
[有数据]"+data.text); evdata.data.btn.click(); } //未从服务器得到数据,继续查询 if(data.success=="0"){ $("#msg").append("
[无数据]"); evdata.data.btn.click(); } }, //Ajax请求超时,继续查询 error:function(XMLHttpRequest,textStatus,errorThrown){ if(textStatus=="timeout"){ $("#msg").append("
[超时]"); evdata.data.btn.click(); } } }); }); });PHP
在这里是无限的循环,循环的结束条件就是获取到了返回结果返回Json数据。
并且接受$_POST['time']参数来限制循环的超时时间,避免资源的过度浪费。(浏览器关闭不会发消息给服务器,使用可能一直循环下去)
if(emptyempty($_POST['time']))exit(); set_time_limit(0);//无限请求超时时间 $i=0; while (true){ //sleep(1); usleep(500000);//0.5秒 $i++; //若得到数据则马上返回数据给客服端,并结束本次请求 $rand=rand(1,999); if($rand<=15){ $arr=array('success'=>"1",'name'=>'xiaocai','text'=>$rand); echo json_encode($arr); exit(); } //服务器($_POST['time']*0.5)秒后告诉客服端无数据 if($i==$_POST['time']){ $arr=array('success'=>"0",'name'=>'xiaocai','text'=>$rand); echo json_encode($arr); exit(); } }运行效果:在图中可以看到无数据的请求时间达到了40S,在40S的请求中若获得数据则请求关闭。
感谢你能够认真阅读完这篇文章,希望小编分享的"jquery与php结合如何实现AJAX长轮询"这篇文章对大家有帮助,同时也希望大家多多支持,关注行业资讯频道,更多相关知识等着你来学习!
数据
服务
服务器
时间
篇文章
循环
查询
就是
方式
消息
状态
用户
结果
精确
价值
传统
兴趣
单向
参数
同时
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
富士康康软件开发
网络安全空间软件
工业控制网络技术 试卷
cisco及华为网络技术
校园网网络安全设计
数据库如何创建分组查询
数据库的维护和简单操作
江苏惠普服务器维修价格
黑客攻击网络安全无声音
无锡基础统计数据库
发起get请求可以修改数据库吗
网络安全相关的帽子制作
海南逸鑫网络技术有限公司地址
无锡建设智慧小区软件开发
中国最好的服务器是哪个
信息技术网络安全教育ppt
nba2kmt数据库
车载网络技术功能
服务器加密怎么进去
网络电视无法解析服务器
电商app软件开发
服务器文件共享有人数限制吗
王者如何打造游戏服务器
有道 服务器
杀马特服务器安全软件
武汉阿拉丁网络技术
不同的网络安全等级保护要求
软件开发遵循的规范
软件数据库开发视频教学视频
我的世界无管理生存服务器