如何使用javascript刷新聊天?

时间:2016-07-12 13:07:01

标签: php jquery ajax chat

好的,所以我正在尝试为我的网站创建一个简单的聊天,但我不知道怎么做,所以当有人发送消息时,它会显示在其他人的聊天中,例如我在一个人上打招呼浏览器,但在我手动刷新页面之前,它不会显示在另一个浏览器上。

我知道有AJAX可以刷新聊天内容,但我尝试的所有内容似乎都不起作用,我不知道为什么。

这是我的索引文件

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.0/jquery.min.js"></script>    
<script type="text/javascript"> 
setInterval( refreshMessages, 1000 );
function refreshMessages(){
$.ajax({
url: 'chat.php',
type: 'GET',
dataType: 'html'
})
.done(function( data ) {
$('#chat').html( data ); // data came back ok, so display it
})
.fail(function() {
$('#chat').prepend('Error retrieving new messages..');
});
}
</script>

<div id="chat"></div>

它根本没有显示聊天,我也不知道为什么,因为该文件与index.php位于同一个文件夹中

如果我将聊天代码放在索引文件中,它可以正常工作。

这是chat.php文件

`$messages = get_msg();
foreach($messages as $message) {
echo '<p><strong>' . $message['sender'] . ' - </strong></p>';
echo '<p>' . $message['message'] . '<br /><br />';
}`

2 个答案:

答案 0 :(得分:0)

setInterval

中设置间隔
setInterval( refreshMessages, 1000 );

function refreshMessages()
{
    $.ajax({
        url: 'chat.php',
        type: 'GET',
        dataType: 'html'
    })
    .done(function( data ) {
        $('#chat').html( data ); // data came back ok, so display it
    })
    .fail(function() {
        $('#msgs').prepend('Error retrieving new messages..'); // there was an error, so display an error
    });
}

答案 1 :(得分:0)

因为您使用的是jQuery 1.3:

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.0/jquery.min.js"></script>    

您无法使用 已完成 失败 。这些在jQuery 1.3.0中不可用

改为使用: 成功 错误

参考

  

一个。 Wolf评论试着看看how-do-i-implement-basic-long-polling

仅针对ajax调用的更正片段:

setInterval(refreshMessages, 1000);
function refreshMessages() {
  $.ajax({
    url: 'chat.php',
    type: 'GET',
    dataType: 'html',
    success: function(data) {
      $('#chat').html(data); // data came back ok, so display it
    },
    error: function() {
      $('#chat').prepend('Error retrieving new messages..');
    }
  });
}
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.0/jquery.min.js"></script>

<div id="chat"></div>