我一直在嘗試從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