我正在为我的网站开发一个简单的网络聊天应用程序。但是,对我来说,使用间隔和每秒请求与ajax聊天感觉不对吗?
我今天要做的就是这个,
<script>
$(function() {
$('#chat_form').submit(function() {
$.post('chat/post', $('#chat_form').serialize(), function(data){
var message = $("#message").val();
$("#message").val('');
$("#chat_main").append('<li><b>Bruker: <?php echo " ".$this->session->userdata("chat_username") ?></b>: ' + message + '<br/></li>');
});
return false;
});
function loadchat()
{
$('#chat_main').load('chat/load');
}
setInterval(loadchat, 500);
loadchat();
});
</script>
还有其他更好的方法吗?
答案 0 :(得分:1)
您可以使用Server Side Events,它应该允许相同的内容,但在数据发生变化时将数据发送到浏览器,这样用户就不会一直要求查看是否已进行更改。
答案 1 :(得分:0)
This is 非常酷的关于聊天应用程序的文章以及使用jQuery实现comet的最佳方法。
它适用于我。
为了使其完美无缺需要很少的黑客,因为它在时间戳中工作,所以当你改变你的机器日期时它无法执行但在服务器上它的工作正常。
使用xml替换文本文件实现,这是一种很好的做法。
答案 2 :(得分:0)
我写了几次。与数据库中的轮询进行Ajax聊天并不是实时聊天。你是对的,使用间隔来调查数据很糟糕。无论如何,这是解决方案(唯一的解决方案)。
You need to read this book。如果你没有jabber服务器,我会给你访问我的(用户注册更新等)。阅读本书然后与我联系。它是XMPP + Strophe库聊天(google和facebook正在使用的)!所以最好重新开始学习新东西!