Php 如何使用javascript刷新聊天记录?
好的,所以我正在尝试为我的网站创建一个简单的聊天,但我不知道如何使它成为这样,当有人发送消息时,它将显示在其他人的聊天中,例如,我在一个浏览器上打招呼,但它不会显示在另一个浏览器上,直到我手动刷新页面 我知道有AJAX可以刷新聊天室的div,但我尝试的一切似乎都不起作用,我也不知道为什么 这是我的索引文件Php 如何使用javascript刷新聊天记录?,php,jquery,ajax,chat,Php,Jquery,Ajax,Chat,好的,所以我正在尝试为我的网站创建一个简单的聊天,但我不知道如何使它成为这样,当有人发送消息时,它将显示在其他人的聊天中,例如,我在一个浏览器上打招呼,但它不会显示在另一个浏览器上,直到我手动刷新页面 我知道有AJAX可以刷新聊天室的div,但我尝试的一切似乎都不起作用,我也不知道为什么 这是我的索引文件 <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.0/jquery.
<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>
设置间隔(刷新消息,1000);
函数刷新消息(){
$.ajax({
url:'chat.php',
键入:“GET”,
数据类型:“html”
})
.完成(功能(数据){
$('#chat').html(数据);//数据返回正常,所以显示它
})
.fail(函数(){
$('#chat').prepend('检索新邮件时出错…);
});
}
它根本不显示聊天,我也不知道为什么,因为该文件与index.php位于同一文件夹中
如果我把聊天代码放在索引文件中,它就可以正常工作
下面是chat.php文件
`$messages = get_msg();
foreach($messages as $message) {
echo '<p><strong>' . $message['sender'] . ' - </strong></p>';
echo '<p>' . $message['message'] . '<br /><br />';
}`
`$messages=get_msg();
foreach($messages作为$message){
回显“”.$message['sender'.-”;
回显“”.$message['message']”。
;
}`
在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
});
}
在
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>
因为您使用的是jQuery 1.3:
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.0/jquery.min.js"></script>
您忘记将其放入$(document).ready()
函数中?这可能会帮助您知道,如果您这样尝试,这将对您的Web服务器造成致命影响;-)。但这是当Ajax成为可能时我做的第一件事之一。啊,很好的旧IE6时代。看看WebSocket,因为这是此类应用程序的最佳实践。除非一个“正常工作”的应用程序就足够了(例如,仅用于测试或摆弄)。如果您的服务器响应时间超过1秒,您的代码将失败。搜索ajax长轮询(使用超时,而不是间隔!)如果websockets不是您的选项,您忘记将其放入$(document).ready()
函数中?这可能会帮助您知道,如果您像这样尝试,这将对您的Web服务器造成致命影响;-)。但这是当Ajax成为可能时我做的第一件事之一。啊,很好的旧IE6时代。看看WebSocket,因为这是此类应用程序的最佳实践。除非一个“正常工作”的应用程序就足够了(例如,仅用于测试或摆弄)。如果您的服务器响应时间超过1秒,您的代码将失败。搜索ajax长轮询(使用超时,而不是间隔!),如果WebSocket不是您的选项,即使我尝试了很多不同的方法,您仍然不想加载。甚至更改jquery的版本。问题是它根本不想加载chat.phpI文件。我们把它设置为10秒,但仍然没有加载任何文件。只有form@Potato您必须至少看到错误消息!如果您至少没有看到错误消息,那么问题并不取决于ajax调用。试着移除计时器,用一个按钮调用ajax。先生,你太棒了。非常感谢,我已经试了一个小时了,现在成功了!对抱歉,这个网站还是新手,尽管我尝试了很多不同的方法,但仍然不想加载。甚至更改jquery的版本。问题是它根本不想加载chat.phpI文件。我们把它设置为10秒,但仍然没有加载任何文件。只有form@Potato您必须至少看到错误消息!如果您至少没有看到错误消息,那么问题并不取决于ajax调用。试着移除计时器,用一个按钮调用ajax。先生,你太棒了。非常感谢,我已经试了一个小时了,现在成功了!对对不起,这个网站还是新的