用户名不必要地重复

时间:2012-12-12 09:48:25

标签: jquery asp.net signalr

我创建了一个简单的聊天应用程序,它将所有连接的用户名广播到连接到服务器的所有用户。无论何时连接新用户,都将刷新用户名列表。

我的问题是..连接用户列表仅对新连接的用户和其他用户显示良好,列表中包含重复的用户名,如下图所示:

enter image description here

我不明白为什么会发生这种情况。为了清楚地理解,我甚至清除了显示用户名列表的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>');
        }
    });
};

1 个答案:

答案 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()