当我们需要实时数据推送,更新客户端信息时,我们需要一个技术来承载我们的这些梦想。
comet,基于 HTTP长连接的“服务器推”技术,是一种新的 Web 应用架构。同事说新浪微博就是用的这种技术;
它只是一个概念,代码还是我们自己写。
我们先剖析下,这个概念: 简单三个字 — 长轮询
这个技术是使用js做请求。
何为 “长” :等待时间长;
何为 “轮询”: 不断请求;
那么加在一起就是 不断请求,但是请求之间间隔时间很长,必须等上一个请求完事后,在继续下一个轮询。
那么一个请求什么时候结束?
这里可以是服务器把请求hold住,要超时了在释放;
要是你害怕服务器不返回怎么办:客户端js settimeout ,每隔一段时间去请求
概念完了,我们看看简单的代码吧:
我们这里实现一个,每隔3秒更新客户端的时间的程序;
客户端html+js:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <script type="text/javascript" src="./jquery.js"></script> <title></title> </head> <body> <div class="tmp">123</div> <script type="text/javascript"> // post 请求 function clin_post(){ $.post("chat.php",function(data){ $('.tmp').html(data); clin_post(); },'json'); } clin_post(); </script> </body> </html> |
服务器端PHP:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
<?php $b = time(); $num = 5; $t = 0; while( ($num - $t)>0 ) { $e = time(); $t = $e - $b; } echo json_encode(date('Y-m-d H:i:s')); ?> |
大家可以试试,希望大家明白其中深意;
支持支持吧
支持支持吧
哇,你把这个主题修改的好漂亮,能不能来一份。找好久,没找到如意的主题,你的这个不错,谢谢博主了。
邮箱:1067939689@qq.com
我这个不是完全遵循wordpress开发规范的。可能只有我能看懂
难道你的css,js,图片都是乱的???
我打包发给你吧,你自己折腾~
谢谢了,恩恩。
赞一个
支持~
现在大家都玩微信了吧!楼主!
研究的真多哦。
有用到就顺道研究下,也比较简单
现在大家都玩微信了吧!楼主
这软广打的我给满分
过来看看你的博客,希望每天都更新一些文章。 诚交友链 站务申请:www.xevip.cn