- 1、本文档共5页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于jquery,php实现ajax长轮询longpoll,jqueryajax轮询,jqueryajax长轮询,phpjqueryajax实例,jqueryajaxphp,jqueryajaxjsonphp,jqueryajax调用php,jqueryajaxpostphp,jqueryajaxphp分页,jqueryajaxphp评论
HTTP是无状态、单向的协议,用户只能够通过客服端向服务器发送请求并由服务器处理发回一个响应。若要实现聊天室、WEBQQ、在线客服、邮箱等这些即时通讯的应用,就要用到“ 服务器推送技术(Comet)”。
传统的AJAX轮询方式,客服端以用户定义的时间间隔去服务器上查询最新的数据。种这种拉取数据的方式需要很短的时间间隔才能保证数据的精确度,但太短的时间间隔客服端会对服务器在短时间内发送出多个请求。
反转AJAX,就是所谓的长轮询或者COMET。服务器与客服端需要保持一条长时间的请求,它使得服务器在有数据时可以返回消息给客户端。
html:
view plaincopy to clipboardprint?
<div?id="msg"></div>??
<input?id="btn"?type="button"?value="测试"?/>??
javascript:
这里使用AJAX请求data.php页面获得‘success’的值,请求的时间达到80秒。在这80秒中若没有从服务端返回‘success’则一直保持连接状态,直到有数据返回或‘success’的值为0才关闭连接。在关闭连接后在继续下一次的请求。
view plaincopy to clipboardprint?
$(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("<br>[有数据]"+data.text);??
?????????????????????evdata.data.btn.click();??
????????????????????}??
?????????????????//未从服务器得到数据,继续查询??
????????????????????if(data.success=="0"){??
????????????????????$("#msg").append("<br>[无数据]");??
????????????????????evdata.data.btn.click();??
????????????????????}??
????????????????},??
?????????????//Ajax请求超时,继续查询??
?????????????error:function(XMLHttpRequest,textStatus,errorThrown){??
?????????????????????if(textStatus=="timeout"){??
?????????????????????????$("#msg").append("<br>[超时]");??
?????????????????????????evdata.data.btn.click();??
?????????????????????}??
?????????????}??
??????????????????
????????????});??
????});??
??????
});??
PHP:
在这里是无限的循环,循环的结束条件就是获取到了返回结果返回Json数据。
并且接受$_POST['time']参数来限制循环的超时时间,避免资源的过度浪费。(浏览器关闭不会发消息给服务器,使用可能一直循环下去)
view plaincopy to clipboardprint?
if(empty($_POST['time']))exit();??
set_time_limit(0);//无限请求超时时间??
$i=0;??
while?(true){??
????//sleep(1);??
????usleep(500000);//0.5秒
您可能关注的文档
- 培训计划-包装车间.xls
- 培训课件-与成功有约[].ppt
- 基于fpga的人工神经网络实现方法的研究.doc
- 基于mcs-单片机的里程表的设计与实现.ppt
- 基于tmsdm平台的智能网络视频监控的设计与实现_贾文全.ppt
- 基于单片机的酒精检测仪课程设计.doc
- 基准地价修正系数表.xls
- 基准地价内涵.doc
- 基功考核.xls
- 基准地价计算.xls
- 2022-2023学年山东省临沂市蒙阴县实验中学联考数学试题试卷含解析.doc
- 2022-2023学年安徽舒城桃溪中学高考适应性测试(3月1日)数学试题含解析.doc
- 2022-2023学年安徽省青阳县第一中学高三第五次月考数学试题试卷数学试题含解析.doc
- 牛呼吸道疾病综合征病原PCR检测技术规范.pdf
- 大庆市野生鸟类疫源疫病监测技术规范.pdf
- fresh线性代数作业解决问题.pdf
- 005a1630模拟电子技术基础教学大纲.pdf
- 2022-2023学年安徽省阜阳市临泉县第一中学高三第二次高考模拟考试数学试题试卷含解析.doc
- 2022-2023学年山东省临沂市兰陵县第一中学高三5月联考数学试题含解析.doc
- samsung专有内容可能会更改electrical part list电气零件清单.pdf
1亿VIP精品文档
相关文档
最近下载
- 八年级英语上:教学设计(第1课时):How do you make a banana milk shake?.doc
- 实变函数教案.docx
- T∕CAGHP 032-2018 崩塌防治工程设计规范(可复制版).pdf
- 结合动画特性试论动画蒙太奇表现方式的应用的中期报告.docx
- 2022.07版中国铁路总公司《铁路技术管理规程》高速铁路部分.docx
- 基于PLC的变频恒压供水系统(完整版).doc
- (5篇)市场监督管理局创建文明城市工作表态发言材料汇编(word可编辑).docx VIP
- 眼底出血的护理查房.pptx
- 企业数字化转型的认识.pptx VIP
- 30题需求分析工程师岗位常见面试问题含HR问题考察点及参考回答.pdf
文档评论(0)