2
我正在创建一个使用php,mysql,jquery和ajax的实时聊天应用程序。什么是通过AJAX不断请求数据库的有效方法?
我想了解一个更好的实时任务的方法。 我要开始检查新邮件,是用户上网是用户键入用户登录之后。
现在,我就setTimeout的AJAX调用数据库来获得文件准备的数据。这是一个正确的方法吗?或者有没有其他方法可以提高系统性能?
另外,我首先检索一个会话id数组进行检查。然后我循环访问数组以检查是否有新消息或用户是否输入。我认为这不够有效。一个对话必须接受检查。有没有办法让我可以单独调用数组中提供的每个对话ID?
现在看起来是这样的:
jQuery(document).ready(function($) {
//check for new message on document ready
if(localStorage.getItem("ckuser") > 0){
var id;
var friends;
$.when(
ckit.getConversation(),//get conversation ids
id = JSON.parse(localStorage.getItem('ids')),
ckit.getFriends(),//get friends
friends = JSON.parse(localStorage.getItem('friends'))
).then(
//new messages
$.each(id, function(k, v){
console.log('checking');
ckit.check(v);
}),
//is online
$.each(friends, function(k, v){
ckit.isOnline(v);
}),
//is typing
$.each(id, function(k, v){
ckit.getIsTyping(v);
})
);
}
}
这是怎么每次检查新邮件,用户在线并键入的样子:
$.when(
[make ajax call for first time]
).then(
(function callMe(){
[make ajax call with updated lastupdate time]
setTimeout(function(){
callMe();
}, 1000);
})()
);
请问您能否为我提供这两种工艺的良好参考?我还想知道,套接字,是托管在第三方服务器还是简单的库? – 112233
@arun:你说得对。套接字是要走的路。请提供适当的资源来宣传您的答案。否则,这也可能是一个评论。 –
@BhavikShah谢谢你的建议。更新为参考 –