php+jquery+ajax 无刷新 无数据库 聊天室,PHP+jquery+ajax实现即时聊天功能实例

本文实例讲述了PHP+jquery+ajax实现即时聊天功能的方法。分享给大家供大家参考。具体如下:

这是一个简单的利用jquery与php做的一个聊天室的源码,我们这里定时利用ajax读取数据库并进行刷新了,下面直接参上源码,实例代码如下:

index.html页面如下:

复制代码 代码如下:

无标题文档

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();

发言

data.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页面如下:

复制代码 代码如下:

$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程序设计有所帮助。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值