您好我有这个代码服务器端来显示在线用户:
header('Content-Type: application/json');
$array = array();
include 'db.php';
$res = mysqli_query($db, "SELECT * FROM `chatters` WHERE status = 1");//users are online
if(mysqli_num_rows($res) > 0){
while($row = mysqli_fetch_assoc($res)){
$array[]= $row; }
}
echo json_encode($array);
作为回应,我得到了这个:
[{"row_id":"40","name":"Krishan kumar","sex":"male","age":"24","country":"India","seen":"20:58:14", "status": "1"}]
所以我在节目页面上有这个代码来向用户展示:
$(document).ready(function() {
setInterval(function(){
$.ajax({
url: 'json.php',
dataType: "json",
type: 'GET',
success: function(data) {
if (data) {
var len = data.length;
var txt = "";
for (var i = 0;i<len; i++) {
txt += "<p>"+data[i].name + "</p>";
}
$(".showUsers").append(txt);
console.log(txt);
}
}
});
}, 2000);
});
但问题是每隔2秒就会出现这样的名字:
Krishan kumar
Krishan kumar
Krishan kumar
Krishan kumar
它继续......
我想显示只打印一次的用户名,同时仍然使用setinterval()
打开请求以检查新用户是否在线。如何解决这个问题?
答案 0 :(得分:0)
请在添加新列表之前清除以前的用户列表。使用以下代码
setInterval(function(){
$(".showUsers").html('');
$.ajax({ ....