我正在进行一个简单的聊天,它已经正常工作,但效率不高。 每当我运行我的脚本时,它会刷新整个聊天并一遍又一遍地加载内容。
我试图找到一种方法,即脚本只从我的聊天数据库加载新内容,旧邮件不应该一遍又一遍地加载。
这是我的index.php中的一部分:
<div id="chat" class="full rund">
<table border="1" class="full chattable">
<?php
$abfrage = "SELECT * FROM chat";
$ergebnis = mysql_query($abfrage);
while($row = mysql_fetch_object($ergebnis)) {?>
<tr class="chattr">
<td style="width:200px;"><h3 class="text">ƬψƬ ☢ <?php echo $row->name;?>:</h3></td>
<td style="width:440px;"><p><h3 class="text"><?php echo $row->text;?></h3></p></td>
<td style="width:160px;"><h3 class="text"><?php echo $row->timestamp;?></h3></td>
</tr>
<?php
}
?>
</table>
</div>
这是我的chat.js:
setInterval( "updateShouts()", 1000 );
function fx(form,target){
var _target=target;
var url=form.action;
var data=$(form)[(form.method.match(/^post$/i))?'serializeArray':'serialize']();
$(_target).load(url,data,function(){setTimeout(function(){
$(_target).empty();
},0);});
return false;}
function updateShouts(){
$('#chat').load('php/latestMsg.php');
}
我的latestMsg.php(与索引相同):
<div id="chat" class="full rund">
<table border="1" class="full chattable">
<?php
$abfrage = "SELECT * FROM chat";
$ergebnis = mysql_query($abfrage);
while($row = mysql_fetch_object($ergebnis)) {?>
<tr class="chattr">
<td style="width:200px;"><h3 class="text">ƬψƬ ☢ <?php echo $row->name;?>:</h3></td>
<td style="width:440px;"><p><h3 class="text"><?php echo $row->text;?></h3></p></td>
<td style="width:160px;"><h3 class="text"><?php echo $row->timestamp;?></h3></td>
</tr>
<?php
}
?>
</table>
</div>
我希望有人可以帮助我,我已经找了很长时间了,我找不到能解决我问题的任何东西! 谢谢:))
答案 0 :(得分:1)
2解决方案。
当然,您需要一种方法将您的消息标记为已读取。
您可以忽略它,只回读最后的X条消息。
答案 1 :(得分:0)
,您必须添加&#39;未读&#39;字段或其他东西,以识别消息状态(已读/未读),与@geggleto解决方案
将查询过滤器添加到以下内容:
$abfrage = "SELECT * FROM chat WHERE timestamp between '$from' AND '$to' ";
确保您有一个按时间限制消息的角色