PHP+jquery+ajax实现即时聊天功能实例
本文实例讲述了PHP+jquery+ajax实现即时聊天功能的方法。分享给大家供大家参考。具体如下:
这是一个简单的利用jquery与php做的一个聊天室的源码,我们这里定时利用ajax读取数据库并进行刷新了,下面直接参上源码,实例代码如下:
index.html页面如下:
<!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <htmlxmlns="http://www.w3.org/1999/xhtml"> <head> <metahttp-equiv="Content-Type"content="text/html;charset=utf-8"/> <title>无标题文档</title> <scriptsrc="js/jquery-1.9.1.min.js"></script> <script> varchat={ init:function(){ chat.first(); $('#chat_btn').unbind('click').click(function(){ chat.send(); }); $('#my_chat').keyup(function(){ if(event.keyCode==13){ chat.send(); } }); }, first:function(){ $.getJSON('data.php',{ action:'first', type:'l' },function(data){ chat.btn_status._true(); $('#mwebtime').html(data.time); $('#chattextarea').val(data.chat); $('#chattextarea').stop(true,true).animate({scrollTop:9999},1); chat.socket(); }); }, send:function(){ chat.btn_status._false(); $.getJSON('send.php',{ txt:$('#my_chat').val(), type:'l' },function(data){ if(data.status==200){ chat.btn_status._false(); $('#my_chat').val(''); setTimeout(function(){ chat.btn_status._true(); },2000); } }); }, socket:function(){ $.getJSON('data.php',{ action:'while', type:'l' },function(data){ $('#mwebtime').html(data.time); $('#chattextarea').val(data.chat); $('#chattextarea').stop(true,true).animate({scrollTop:9999},1); chat.socket(); }); }, btn_status:{ _false:function(){ $('#chat_btn').html('等待').attr('disabled',true); }, _true:function(){ $('#chat_btn').html('发言').attr('disabled',false); } } } chat.init(); </script> </head> <body> <divid="chat"> <textareawrap="physical"style="line-height:20px;font-size:12px;height:100px;width:200px;"></textarea> <BR/> <inputid="my_chat"type="text"/> <buttonid="chat_btn"disabled="disabled">发言</button> </div> <divid="mwebtime"></div> </body> </html>
data.php页面如下:
<?php header("Expires:Mon,26Jul199705:00:00GMT"); header("Last-Modified:".gmdate("D,dMYH:i:s")."GMT"); header("Cache-Control:no-cache,must-revalidate"); header("Pramga:no-cache"); set_time_limit(0); $get=$_GET['action']; $type=$_GET['type']; $file=$type.'.txt'; if(isset($get)&&isset($type)&&file_exists($file)){ switch($get){ case'first': $chat=file_get_contents($file); $json=array( 'status'=>200, 'time'=>gmdate("s"), 'chat'=>$chat, ); echojson_encode($json); break; case'while': $oldsize=filesize($file); $newsize=filesize($file); while(true){ if($oldsize!=$newsize){ $chat=file_get_contents($file); $json=array( 'status'=>200, 'time'=>gmdate("s"), 'chat'=>$chat, ); echojson_encode($json); exit; } clearstatcache(); $newsize=filesize($file); usleep(10000); } break; } } ?>
send.php页面如下:
<?php $json=array(); $txt=isset($_GET['txt'])?$_GET['txt']:''; $type=isset($_GET['type'])?$_GET['type']:''; if($txt!=''){ $file=$type.".txt"; if(file_exists($file)){ $fp=fopen($file,"a"); $str="rn".'Admin:'.$txt; //$str=$txt."n"//linux; fwrite($fp,$str); fclose($fp); $json['status']=200; echojson_encode($json); exit; } } ?>
希望本文所述对大家的php程序设计有所帮助。