【发布时间】:2012-12-09 02:27:21
【问题描述】:
我正在创建一个聊天程序。这个聊天程序有两个方面(客户端和用户)。所有数据都进入数据库(mysql)。目前,聊天工作正常。每一面类型,我都有一个侦听器函数,它使用 ajax 每秒或每两秒钟将数据库文件加载到窗口中。
问题是,这占用了太多带宽!
我正在考虑在设定的持续时间后终止聊天,或者我正在考虑有一种方法可以仅在事件发生时更新。
在我看来,理想情况下这将是最好的:
如果用户输入了新数据,那么在客户端会被检测到,然后它会激活仅在那个时候更新聊天窗口的功能。
在 ajax/jquery/javascript 中是否存在这样的监听?
这是我目前用来收听的代码:
/* set interval of listener */
setInterval(function() {
listen()
}, 2500);
/* actual listener */
function listen(){
/* send listen via post ajax */
$.post("listenuser.php", {
chatsession: $('#chatsession').val(),
/* Do some other things after response and then update the chat window with response content from database window */
}, function(response){
$('#loadingchat').hide();
$('#chatcontent').show();
$('#messagewindow').show();
setTimeout("finishAjax('messagewindow', '"+escape(response)+"')", 450);
});
return false;
}
【问题讨论】:
-
客户端和用户不是一回事吗?你是指客户端和服务器吗?
标签: jquery mysql ajax listener