为什么dynamic内容在所有浏览器中都有变化

我有一个node.js应用程序具有基本身份validation,我已经添加了socket.io实时messaging.Ilogin三个浏览器使用三个不同的credentials.Example

  1. xyz@xyz.com
  2. abc@abc.com
  3. 123@123.com

每个用户login后,我将它们添加到当前login的用户列表中删除当前用户。

  1. 对于第三( 123@123.com )用户,只有在线显示xyz@xyz.comabc@abc.com
  2. 这样对于第二( abc@abc.com )用户,只有xyz@xyz.com123@123.com在线显示。

逻辑工作正常,我控制台从服务器端logging。

但问题是网站上显示的在线用户被最后login的用户覆盖了所有浏览器

如果123@123.com最后login,则所有浏览器中的在线用户列表将被覆盖为xyz@xyz.com,abc@abc.com,反之亦然。

结果:

  1. 因此对于第三用户(123@123.com) xyz@xyz.com& abc@ abc.com在线显示。
  2. 所以对于第二用户( abc@abc.comxyz@xyz.com&abc@abc.com在线显示。
  3. 所以对于第一个用户(xyz@xyz.com) xyz@xyz.com& abc@ abc.com在线显示。

客户端更新在线用户的代码。

$(document).ready(function(){ var socket = io.connect('http://localhost:3000'); // get the current user email var email = $("#email").text(); socket.emit('user', email); // list of online users returned from server socket.on('users_connected',function (users) { updateUsers(users); }); function updateUsers(users){ var list = []; for(var i =0; i<users.length; i++){ var user = "<a href='#'>"+users[i]+"</a>"; list.push(user); $( "#users" ).html(list); } } }); 

需要的答案是:

  1. 为什么内容会在浏览器中发生变化?Web应用程序不是每个浏览器中应用程序的新实例吗?
  2. 我该如何解决 ?