利用Jquery+php显示当前在线用户

作者:网络 来源:佚名 更新时间:2009-03-16 17:24:25 点击:
利用jquery框架,ajax调用当前在线用户

function updateonline(){

  1.    if (arguments[0]==true){
  2.        $.ajax({
  3.            url:'ajax.php?do=updateonline',
  4.            type:'get',
  5.            success:function(){
  6.                $('#updateonline').html(arguments[0])
  7.            }
  8.        }
  9.        );
  10.    }else{
  11.        $.ajax({url:'ajax.php?do=updateonline',type:'get'});
  12.    }
  13. }

这个updateonline是div的id。还有就是调用这个函数!
  1. $(document).ready(function(){
  2.    updateonline(true);
  3.    window.setinterval("updateonline(true)",60000);
  4. });

下面是服务端处理代码:
  1. $now=time();
  2. $filename='online.xml';
  3. $xml=new domdocument;
  4. $xml->load($filename);
  5. $items=$xml->getelementsbytagname("item");
  6. $i=0;
  7. $addxml=true;
  8. foreach ($items as $item){
  9.    $ip=$item->childnodes->item(0)->nodevalue;
  10.    $time=$item->childnodes->item(1)->nodevalue;
  11.    if($ip==getip()){
  12.        $addxml=false;
  13.    }
  14.    if($[email protected]$_session['ip']){
  15.        $xml_online=$xml->getelementsbytagname("online")->item(0);
  16.        $xml_online_item_select=$xml->getelementsbytagname("item")->item($i);
  17.        $xml_online_item=$xml->createelement("item");
  18.        $newip=$xml->createelement("ip",$ip);
  19.        $xml_online_item->appendchild($newip);
  20.        $newtime=$xml->createelement("time",$now);
  21.        $xml_online_item->appendchild($newtime);
  22.        $xml_online->replacechild($xml_online_item,$xml_online_item_select);
  23.        $xml->save($filename);
  24.    }
  25.    if(round(($now-$time)/60)>1){
  26.       $item=$xml->documentelement->getelementsbytagname("item")->item($i);
  27.       $xml->documentelement->removechild($item);
  28.       $xml->save($filename);
  29.    }
  30.    $i++;
  31. }
  32. if($addxml){
  33.        $xml->formatoutput = true;
  34.        $xml_online=$xml->getelementsbytagname("online")->item(0);
  35.        $xml_online_item=$xml->createelement("item");
  36.        $xml_online_item_ip=$xml->createelement("ip",getip());
  37.        $xml_online_item->appendchild($xml_online_item_ip);
  38.        $xml_online_item_time=$xml->createelement("time",$now);
  39.        $xml_online_item->appendchild($xml_online_item_time);
  40.        $xml_online->appendchild($xml_online_item);
  41.        $xml->save($filename);
  42.        $_session['ip']=getip();
  43. }
  44. if($items->length==0){
  45.    echo'1';
  46. }else{
  47.    echo $items->length;
  48. }
  49. unset($now,$filename,$xml,$items,$i,$addxml);

配合了session来存储ip地址以区分用户。

下面是xml文件
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <online>
  3. <item><ip>127.0.0.1</ip><time>1232254720</time></item>
  4. </online>