我正在以下列方式处理事件侦听器/处理程序:
var _builder_canvas = document.getElementById("Builder");
mouseMove = function() {
}
initBuilder = function( ) {
// Add mouse listener events
_builder_canvas.addEventListener( 'mousemove', mouseMove, true);
}
使用主文档的onload处理程序调用'initBuilder'。
即使上面有一个空函数,当我在Chrome(23.0.1271.64)或FF(16.0.2)中运行此代码时,每次鼠标移动时都会分配一个永不释放的内存。
我知道你总是需要删除事件监听器以避免内存泄漏,但是当它是mousemove处理程序时如何做到这一点?处理程序需要在页面打开的整个时间内处于活动状态。
我还注意到,以类似的方式为mouseup或mousedown添加一个监听器/处理程序不会导致任何额外的内存分配。
我错过了一些基本的东西吗?任何见解都将不胜感激。
答案 0 :(得分:0)
如果使用devtools记录内存使用量>时间轴,你会看到事件被触发后内存被释放。