使用函数时带有传单内存泄漏的nodejs

nodejs with leaflet memory leak when using a function

我在 browser/client 中插入一个函数后,我在 client.js 中发生内存泄漏:

socket.on("botnet", function(t) {
var e = JSON.parse(t);
...
$(e).on('click', function (e) {
     console.log(id);
});
});

一旦我删除(任何)函数,就没有内存泄漏。我缺少什么?为什么首先会发生内存泄漏?

可能是因为您在每次触发僵尸网络事件时都创建了一个点击事件。我会改为使用带有 .on 函数的作用域,并将处理程序从其内部移除到外部作用域。

做:.on("click","div",function(){});

而不是:.on("click",function(){});

并在套接字事件之外将其删除,如下所示:

socket.on("botnet", function(t) {
    var e = JSON.parse(t);
});
$(expectedClassOrID).on('click','div', function (e) {
    console.log(id);
});