好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

PHP jquery ajax实现即时聊天功能 - php高级应用

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= "http://code.jquery.com/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();     }    }); www.111cn.net   },   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 ; www.phpfensi.com     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 jquery ajax实现即时聊天功能 - php高级应用的详细内容...

  阅读:73次