欢迎您访问我爱IT技术网,今天小编为你分享的编程技术是:【PHP+AJAX实现实时显示在线用户信息】,下面是详细的分享!
PHP+AJAX实现实时显示在线用户信息
我现在的博客就使用了这种方法来显示的在线用户信息的,但是觉得开销太大了!负载能力不太好!如果小型的站点足够用了!
我的博客用的Jquery框架,当然Ajax调用方式就很简单了!如下:
function UpdateOnline(){ if (arguments[0]==true){ $.ajax({ url:'ajax.php?do=updateonline', type:'GET', success:function(){ $('#updateonline').html(arguments[0]) } } ); }else{ $.ajax({url:'ajax.php?do=updateonline',type:'GET'}); } }
这个updateonline是div的ID。
还有就是调用这个函数!
$(document).ready(function(){ UpdateOnline(true); window.setInterval("UpdateOnline(true)",60000); });
下面是服务端处理代码:
$Now=time(); $FileName='online.xml'; $XML=new DomDocument; $XML->load($FileName); $Items=$XML->getElementsByTagName("item"); $I=0; $AddXML=true; foreach ($Items as $Item){ $IP=$Item->childNodes->item(0)->nodeValue; $Time=$Item->childNodes->item(1)->nodeValue; if($IP==GetIP()){ $AddXML=false; } if($IP==@$_SESSION['IP']){ $XML_Online=$XML->getElementsByTagName("online")->item(0); $XML_Online_Item_Select=$XML->getElementsByTagName("item")->item($I); $XML_Online_Item=$XML->createElement("item"); $NewIP=$XML->createElement("ip",$IP); $XML_Online_Item->appendChild($NewIP); $NewTime=$XML->createElement("time",$Now); $XML_Online_Item->appendChild($NewTime); $XML_Online->replaceChild($XML_Online_Item,$XML_Online_Item_Select); $XML->save($FileName); } if(round(($Now-$Time)/60)>1){ $Item=$XML->documentElement->getElementsByTagName("item")->item($I); $XML->documentElement->removeChild($Item); $XML->save($FileName); } $I++; } if($AddXML){ $XML->formatOutput=true; $XML_Online=$XML->getElementsByTagName("online")->item(0); $XML_Online_Item=$XML->createElement("item"); $XML_Online_Item_IP=$XML->createElement("ip",GetIP()); $XML_Online_Item->appendChild($XML_Online_Item_IP); $XML_Online_Item_Time=$XML->createElement("time",$Now); $XML_Online_Item->appendChild($XML_Online_Item_Time); $XML_Online->appendChild($XML_Online_Item); $XML->save($FileName); $_SESSION['IP']=GetIP(); } if($Items->length==0){ echo'1'; }else{ echo $Items->length; } unset($Now,$FileName,$XML,$Items,$I,$AddXML);
配合了session来存储IP地址以区分用户。
下面是XML文件
<?xml version="1.0" encoding="utf-8"?> <online> <item><ip>127.0.0.1</ip><time>1232254720</time></item> </online> 好了基本上就这些!
以上所分享的是关于PHP+AJAX实现实时显示在线用户信息,下面是编辑为你推荐的有价值的用户互动:
相关问题:使用PHP+ajax实时显示下面这里的行情数据
答:其实这跟AJAX无关, AJAX也是需要一个类似点了按钮触发它去调取数据这样子, 你如果想要时时刷新,相当于原页面每变动一次,你这边页面也跟着变动对吧, 如果用PHP做,只能定时查询了,每隔多长时间主动查询一次, 每次查询完保存信息,完了,下次查询时比... >>详细
相关问题:网页实时提示 java怎么实现
答:在后台返回的时候: HttpServletResponse response=ServletActionContext.getResponse(); response.setCharacterEncoding("UTF-8"); response.setContentType("text/html; charset=utf-8"); PrintWriter out=response.getWriter(); out.print("a... >>详细
相关问题:网页数据实时统计功能怎么实现?
答:如果是需要客户操作的话 就很简单了 如果不需要客户操作的话 你把你每个栏目的选项喜欢和讨厌分别设置id和隐藏checked属性 只要记录好每个选项的id和checked 再最后统计就可以了啊 >>详细
- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
