所以我使用php从mysql表中获取数据生成以下HTML表。而我想要做的是使用ajax不断更新最后一行,以便表不会重新加载整个表。
<tbody>
<?php while($row = MySQL_fetch_array($result)):
$id = htmlentities($row['id']);
$status = htmlentities($row['status']);
include ("button.php");
?>
<tr>
<td title="lname" width="100px">
<div style="width:100px; overflow:hidden;">
<?php echo(htmlentities($row['last_name'])); ?>
</div>
</td>
<td width="100px">
<div style="width:100px; overflow:hidden;">
<?php echo(htmlentities($row['first_name'])); ?>
</div>
</td>
<td width="100px">
<div style="width:100px; overflow:hidden;">
<?php echo(htmlentities($row['u_name'])); ?>
</div>
</td>
<td width="100px">
<div style="width:150px; overflow:hidden;">
<?php echo(htmlentities($row['skype_id'])); ?>
</div>
</td>
<td width="100px">
<div style="width:100px; overflow:hidden;">
<?php echo(htmlentities($row['primary_location'])); ?>
</div>
</td>
<td>
<div style="width:100px; overflow:hidden;">
<?php echo(htmlentities($row['phone'])); ?>
</div>
</td>
<td>
<div style="width:100px; overflow:hidden;">
<?php echo '<div><div id="r'.$id.'"><div id="test"><img class="rating" id="'.$status.$id.'" src="'.$color.'"><div style="display:none;">'.$status.'</div></div></div></div>';?>
</div>
</td>
</tr>
<?php endwhile; ?>
</tbody>
我尝试了以下操作:
<script>
$(document).ready(function(){
refreshTable();
});
function refreshTable(){
$('#test').load('response.php', function(){
setTimeout(refreshTable, 5000);
});
}
</script>
其中response.php再次使用整个while循环。这个问题如下:
1)几秒钟后,页面会越来越慢......响应越来越少。很快它就会陷入停顿。我不明白为什么。
2)刷新是可见的。每次刷新时,所有表格突出显示都会闪烁。
所以我想,也许如果我只是尝试刷新一列......它会不会停止?但是,我曾试图只更新列,打破了一切,我的所有脚本都会停止工作。我不知道如何摆脱表突出显示在刷新时消失的问题。我怎样才能让这一切成为现实?
谢谢!
答案 0 :(得分:2)
向URL发出ajax请求,该URL仅返回json(或html中的最后一行,当然包含<tr>
标记)格式。然后,使用javascript替换最后一行。