我创建了一个简单的聊天应用程序,它将所有连接的用户名广播到连接到服务器的所有用户。无论何时连接新用户,都将刷新用户名列表。
我的问题是..连接用户列表仅对新连接的用户和其他用户显示良好,列表中包含重复的用户名,如下图所示:
我不明白为什么会发生这种情况。为了清楚地理解,我甚至清除了显示用户名列表的div showUsernames
。
请查看以下与此问题相关的代码。 (随着用户增加第一个连接用户的列表也在增加,然后是第二,第三,第四......)
chat.client.joins = function () {
//calling the server side method "GetConnectedUsers"
//The return value of the method is stored in a variable "users"
chat.server.getConnectedUsers().done(function (users) {
//clearing the div, to fill it again
$('#showUsernames').val('');
console.log(users.length);
//calling each username stored in a static dictionary on server side using for loop
for (var i = 0; i < users.length; ++i) {
$('#showUsernames').append('<li>' + users[i].Name + '</li>');
}
});
};
答案 0 :(得分:3)
您没有检查已连接的用户。
最快的方法是首先清空列表。
$('#showUsernames').empty();
for (var i = 0; i < users.length; ++i) {
$('#showUsernames').append('<li>' + users[i].Name + '</li>');
}
line 72
的 files.js
编辑:我现在看到您正在尝试使用.val('')
清除列表。这不起作用,因为.val()
仅适用于输入元素等。.empty()
可在此处使用,如上所示。
所以,line 70
files.js
- 用.val('')
切换.empty()