【发布时间】:2011-08-10 14:11:57
【问题描述】:
我目前正在编写一个 node.js/socket.io 应用程序,但这个问题对于 javascript 来说很普遍。
我有一个关联数组,用于存储每个客户端连接的颜色。考虑以下几点:
var clientColors = new Array();
//This execute each new connection
socket.on('connection', function(client){
clientColors[client.sessionId] = "red";
//This execute each time a client disconnect
client.on('disconnect', function () {
delete clientColors[client.sessionId];
});
});
如果我使用delete语句,我担心它会导致内存泄漏,因为以client.sessionId命名的属性值(关联数组是对象)不会被删除,它对它的值的引用将会消失,但是属性将仍然存在于对象中。
我说的对吗?
【问题讨论】:
-
这对我来说一切都很好。它将删除 client.sessionId 的 clientColors 条目。
标签: javascript node.js socket.io