如何使用 javascript 刷新聊天?

How to I refresh the chat using javascript?

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

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

这是我的索引文件

<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 />';
}`

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

因为您正在使用 jQuery 1.3:

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

您不能使用 donefail.这些在 jQuery 1.3.0

中不可用

改用:成功错误.

参考

A. Wolf comment try to take a look to 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>