0

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

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

在此处输入图像描述

我不明白为什么会这样。为了清楚地理解,我什至清除了showUsernames显示用户名列表的 div。

请查看与此问题相关的以下代码。(随着用户的增加,第一个连接用户的列表也在增加,然后是第二个、第三个、第四个......)

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>');
        }
    });
};
4

1 回答 1

3

您不是在检查已连接的用户。

解决此问题的最快方法是先清空列表。

$('#showUsernames').empty();
for (var i = 0; i < users.length; ++i) {
  $('#showUsernames').append('<li>' + users[i].Name + '</li>');
}

line 72files.js

编辑:我现在看到您正在尝试使用.val(''). 这不起作用,因为.val()仅适用于输入元素等。.empty()如上所示。

所以,of line 70-files.js切换.val('').empty()

于 2012-12-12T09:50:28.170 回答