- 1、本文档共5页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
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秒??
????$i++;??
??????
????//若得到数据则马上返回数据给客服端,并结束
您可能关注的文档
- 基于FP光纤干涉仪的压力传感器.ppt
- 基于GEDGARCH模型的沪深基金收益率波动性研究.doc
- 03城市的明眸..ppt
- 基于GIS的江苏省溧阳市耕地地力评价研究定稿.doc
- 基于HFSS的微波带阻滤波器设计.doc
- 基于HID类的USB人机接口设计.doc
- 03第三章土地分区利用..ppt
- 03第三章土地利用总体规划..ppt
- 03第三章药物的杂质检查..ppt
- 基于HYSYS的甲醇精馏系统模拟与优化练习.doc
- 2024年度IDC项目评价分析报告.docx
- 2024年度HITECOAT高耐蚀,耐磨化学镀镍磷合金钢板材项目成效分析报告.docx
- 2024年度1,8-萘内酰亚胺项目综合评估报告.docx
- 2024年度ABS项目成效分析报告.docx
- 2024年度CDMA第三代蜂窝移动通信系统项目成效分析报告.docx
- 2024年度COSPLAY服装项目评估分析报告.docx
- 2024年度DOP项目成效分析报告.docx
- 2024年度1,8-萘内酰亚胺项目成效分析报告.docx
- 2024年度B116型一氧化碳中温变换催化剂项目评估分析报告.docx
- 2024年度CA-系列金属闪光漆及罩光清漆项目成效分析报告.docx
最近下载
- 地铁物业管理培训课件.pptx
- 工程数学(本)形成性考核作业4.doc
- GB T 34520.7-2017 连续碳化硅纤维测试方法 第7部分:高温强度保留率 标准.pdf
- 自编教材审核表(模板).pdf
- 一例慢性阻塞性肺疾病急性加重期合并II型呼吸衰竭患者的个案护理PPT.pptx
- [大庆]黑龙江大庆市民政局所属事业单位选调事业编制工作人员笔试上岸试题历年高频考点难、易错点附带答案详解.docx VIP
- ISO9001 14001 ISO45001检查表审核方法全套.docx VIP
- 增光膜规格说明书.pdf
- 人教版数学四年级第一单元教材解读及集体备课课件.pptx VIP
- 2024 离婚协议书 离婚协议(打印版).docx
文档评论(0)