我正在通过以下方式使用事件侦听器/处理程序:
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 添加侦听器/处理程序不会导致任何额外的内存分配。
我在这里错过了一些基本的东西吗?任何见解将不胜感激。