PHP与ajax的长轮询
来源:互联网 发布:江苏凤凰数据有限公司 编辑:程序博客网 时间:2024/06/06 00:57
关于PHP与Jquery的ajax长轮询的简单的写法
html代码
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>长轮询</title></head><script src="../test/jquery-3.2.1.js" ></script><body> <button type="" id="but" >测试</button> <div id="bu"></div></body><script> $(function(){ $("#but").bind('click',{but:$("#but")},function(e){ $.ajax({ type:"post", url:"data.php", data:{"time": Date.parse(new Date())/1000}, timeout: 5000,//5秒超时,可自定义设置 , dataType:"html", success:function(result, textStatus){ $("#bu").append("[state: " + textStatus + ", data: { " + result + "} ]<br/>"); if (textStatus == "success") { // 请求成功 e.data.but.click(); } ; }, error:function(XHR, textStatus, errorThrown){ $("#bu").append("[state: " + textStatus + ", error: " + errorThrown + " ]<br/>"); if (textStatus == "timeout") { // 请求超时 e.data.but.click(); // 递归调用 } else { // 其他错误,如网络错误等 e.data.but.click(); }; } }); });});</script></html>
PHP代码
<?phpif(empty($_POST['time'])) exit();date_default_timezone_set("PRC");set_time_limit(0);//设置请求时间为无限,长连接$time = $_POST['time'];while (true) { sleep(3); // 业务处理 $i = rand(0,100); // 产生一个0-100之间的随机数 if ($i > 50) { // 当$i>50 视为有数据变化 $responseTime = time(); echo ('result: ' . $i . ' response_time: ' . $responseTime . ' request_time: '. $time . ' use_time: '.($responseTime - $time)); exit(); } else { // 没有数据变化 sleep(8); exit(); } }
测试结果为:
阅读全文
0 0
- PHP与ajax的长轮询
- PHP与ajax的交互
- AJAX与PHP的结合使用
- PHP与Ajax的交互更新页面
- php网站开发与Ajax的实现
- PHP与AJAX的简单使用
- ajax与php的跨域请求
- php与Ajax实例
- PHP与AJAX交互
- php与Ajax
- ajax与php总结
- ajax与PHP示例
- PHP处理Ajax请求与Ajax跨域
- ajax+php应用的乱码问题分析与解决
- php的ajax框架xajax入门与试用
- Ajax 与PHP 调用 这个JS是很通用的。
- php的ajax框架xajax入门与试用
- 基于PHP与Ajax的表单验证功能
- tensorflow训练cnn网络实现避障与导航(二)V-rep仿真环境的搭建
- the way
- 使用pip默认源下载慢,修改为国内源
- 蒜头君的树
- 单轨迹传感器巡线
- PHP与ajax的长轮询
- 阿里云效团队大规模代码构建技术实践
- 学习ORACLE Scheduler特性(8)Application抛出的Events
- 1034. 有理数四则运算
- 容能科技亮相宝博会 全云能力助力企业互联网+
- 谈谈数据库连接池的原理
- 南京邮电大学网络攻防平台逆向writeup之[maze]
- 爬取豆瓣美女图片网美女图片
- PHP解决多进程同时读写一个文件的问题