IE7内存泄漏的进一步澄清
Further clarification of an IE7 Memory Leak
我相信我在IE7中遇到了内存泄漏。当用户离开我们的一个页面时,它崩溃了。在进行一些调试时,我发现了下面的一段代码,这似乎是罪魁祸首,因为当我对它进行注释时,该页面运行良好。
$$('.someClass').each(function(item, index) {
$(item).addEvent('click', function(e) {
if (e) e.preventDefault();
// ...
// MEMORY LEAK??
var userId = $(item).getElement('a').id.substr(10);
// ...
});
});
在这种情况下,您需要打破DOM元素和userId
变量之间的循环,对吗?我仍然有点纠结于这个概念。
我正在尝试(我可以假设它是mootools吗?),并且可以确认泄漏。
在each()中做什么并不重要,each(()会造成泄漏。在每次页面加载时,我都会得到2个泄漏,其中1个用于HTML元素,1个用于DIV元素。
DIV不是DOM的一部分(在文档中没有DIV的情况下对其进行了测试),它是由用于测试目的的mootools创建的。当我只使用以下内容时也会发生泄漏:
$$('.someClass').each(function(){});
那么我可以建议:不要使用mootools^^
p.S:使用mootools-core-1.4.4-full-compat.js、IE6和sIEve 进行测试
没有内存泄漏。userId
只是一个字符串变量,它与任何内容都没有连接。一旦超出范围,浏览器就会对其进行垃圾收集。
相关文章:
- 将数据存储在javascript数组中以供进一步使用
- 重复应用 d3 转换导致的内存泄漏
- 如何显示在给定极限内存在的所有素数
- IE7中的blockUI插件内存泄漏25kb
- Javascript闭包-如何防止内存泄漏
- 基于订阅的nosql内存数据库
- 显示:阻止/无html元素,css.not从内存中释放
- jQuery Draggable:内存泄漏
- 运算符||是否禁用进一步的串联
- 元素过多的HTML内存使用情况
- 如何使用Javascript在FireFox中将html从内存动态加载到iframe中
- "检测到可能的EventEmitter内存泄漏”;使用Gulp+Watchify+Factor捆绑包
- Javascript图像数组预加载速度和从内存中删除
- 在Dojo类中递归调用setTimeout时是否存在内存泄漏
- VBA加载网页并提取内存中的数据
- 是内存泄漏
- 将处理程序留在img.onload上是内存泄漏
- new Datamap() 在调用之间保持内存的共享状态
- 具有并发sse连接的node.js内存泄漏
- IE7内存泄漏的进一步澄清