PHP+jquery+ajax实现即时聊天功能实例 |
本文实例讲述了PHP+jquery+ajax实现即时聊天功能的方法 。分享给大家供大家参考 。具体如下: 这是一个简单的利用jquery与php做的一个聊天室的源码,我们这里定时利用ajax读取数据库并进行刷新了,下面直接参上源码,实例代码如下: index.html页面如下: 复制代码 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>无标题文档</title> <script src="js/jquery-1.9.1.min.js"></script> <script> var chat = { 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); $(#chat textarea).val(data.chat); $(#chat textarea).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); $(#chat textarea).val(data.chat); $(#chat textarea).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> <div id="chat"> <textarea wrap="physical" style="line-height:20px;font-size:12px;height:100px;width:200px;"></textarea> <BR /> <input id="my_chat" type="text" /> <button id="chat_btn" disabled="disabled">发言</button> </div> <div id="mwebtime"></div> </body> </html> data.php页面如下: 复制代码 代码如下: <?php
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); header("Last-Modified: ".gmdate("D, d M Y H: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, ); echo json_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, ); echo json_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; echo json_encode($json); exit; } } ?> 希望本文所述对大家的php程序设计有所帮助 。 |