你好我已经开发了使用socket.io,expressjs和猫鼬它的工作正常的聊天应用程序。它会在几秒钟后刷新并从db中提取新的客户端(如果存在)。问题在于用户可以感觉到div是正在刷新的,并且还有一段时间需要时间来回应。如何避免这种情况。这里是我的代码 这是我的服务器端代码刷新内容不刷新页面
setInterval(function() {
var allOnLine;
allOnLine = io.sockets.clients();
for (var client in allOnLine) {
if (allOnLine[client].username == "undefined") {
continue;
} else {
notifyAll(allOnLine[client].username);
}
}
}, 50000);
,这里是通知所有方法
function notifyAll(userName) {
contactModel.find({'userId':userName}, (function (err, contactModel) {
usernames = [];
var contacts = contactModel;
for (var a = 0; a < contacts.length; a++) {
usernames[a] = contacts[a].contactId;
}
var allOnLine;
allOnLine = io.sockets.clients();
for (var client in allOnLine) {
if (allOnLine[client].username == "undefined") {
continue;
} else {
for (var i = 0; i < usernames.length; i++) {
if (allOnLine[client].username == usernames[i]) {
usernames[i] = usernames[i] + " -On";
}
allOnLine[client].username);
}
}
}
io.sockets.to(userName).emit('updateusers', usernames);
}));
}
这是我的客户端代码
socket.on('updateusers', function(usernames) {
jQuery('#usernames').html('');
jQuery.each(usernames, function(key, value) {
jQuery('#usernames').append('<div class="chatContact" id="chatLink" onclick="privateChat(\''+value+'\')">');
}}
任何帮助我也发布了这个问题,但没有回答
可能[刷新内容不刷新页面](http://stackoverflow.com/questions/14338544/refresh-the-content-without-page-refresh) –