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