我一直在尝试从ajax的数据库中检索新行。就像在Facebook聊天中发生的那种事情一样。我一直在做的是每两秒从数据库中获取最后十行数据,并尝试显示用户没有看到的数据。我有两列,id和名字。我创建了一个有序列表,并将每个li元素id设置为数据库中的id。每个李是一排。然后我尝试获取最后一个li元素的id,并检查数据库中的id是否更大,如果它附加了包含id和name的新li。但由于某种原因,它每两秒追加整行10行。我做错了什么? 这是我正在使用的代码。只显示jquery数据库中的最新行
<ol id="output"><li id="1">test</li></ol>
<script id="source" language="javascript" type="text/javascript">
function reloadw()
{
$.ajax({
url: 'api.php',
data: "",
dataType: 'json',
success: function(rows)
{
for (var i in rows)
{
var row = rows[i];
var lastId = $('ol#output li').attr('id');
var id = row[0];
var vname = row[1];
if(id > lastId){
$('#output').append("<li id="+id+"><b>id: </b>"+id+"<b> name: </b>"+vname+"</li>");
}}
}
});
} setInterval(reloadw,2000);
这是我从DB
$result = mysql_query("SELECT * FROM $tableName ORDER BY id");
$data = array();
for($i=0;$i<=9;$i++){
$row = mysql_fetch_row($result);
$data[] = $row;
}
echo json_encode($data);
你有没有考虑过只是从最后一个ID运行SQL查询? – stevemarvell
为什么不在你的查询中使用'LIMIT'?你现在正在做的方式将从每个ajax调用数据库中获取所有记录,这是性能问题。 – Deepak
我正在尝试编写一个聊天应用程序,因此返回特定行数的最后一行将不会执行 – Youngestdj