【发布时间】:2012-04-12 15:37:15
【问题描述】:
以下代码导致内存泄漏(您可以看到这种情况发生的越多,越慢,越慢)。不幸的是,我无法在我的办公室下载 javascript 分析器(我可以,只需几天/几周的时间)。
这是代码,只是下拉菜单的一些简单转换:
$(document).ready(function(){
breadcrumbOver = function () {
$(this).stop().animate({ backgroundColor: "#3393b5", textIndent: 15 }, 250);
}
breadcrumbOut = function () {
$(this).stop().animate({ backgroundColor: "#738793", textIndent: 0 }, 250);
}
$("nav ul li").hover(
function () {
$(this).children('ul.child').stop().slideDown('fast').children('li').hover(breadcrumbOver, breadcrumbOut);
},
function () {
$(this).children('ul.child').stop().slideUp('fast').unbind(breadcrumbOver, breadcrumbOut);
}
);
});
任何人都可以看到可能发生内存泄漏的位置吗?
编辑:此处的实时示例 - http://rcnhca.org.uk/sandbox/(反复滚动“健康、安全和安保”,然后滚动它的孩子以查看效果,如果您快速滚入和滚出,有时动画 slideDown 不会触发够了)。
【问题讨论】:
-
大多数时候,我们的编码方式会导致内存泄漏。
-
您在浏览器开发者工具中看到了什么?如果您观看,您的各种动画可能会向您展示自己。你可以从中看出很多。
-
@veeTrain 我只有萤火虫,它没有显示任何异常,只是它抛出了这个错误:“WebGL:无法获得可用的 WebGL 上下文。”这与 Modernizr 不是我的脚本有关。
标签: javascript jquery memory-leaks