我正在为DOM添加div并在其上执行一些动画。一旦动画结束,我将再次从DOM中删除div,如下所示:
$div = $("<div />", {id:"flashMsg", class: className, html:msg}).prependTo(bazingaApp.app.rightPanel);
$div.fadeIn("slow",function(){
$(this).delay(5000).slideUp(1000, function () {
$(this).remove();
});
});
这会造成任何内存泄漏吗?
答案 0 :(得分:2)
如果$div
是一个超出范围的变量,那就不胜算了。如果$div
变量保留在内存中,它将会出现。如果只有一个$div
变量,那么它将是非常小的泄漏。如果$div
被重复创建并保留(例如,在一个闭包捕获的函数中),那么微小的泄漏就会加起来。最有可能,这很好,但我们需要更多的背景才能确定。
为了避免这种可能性,你可以完全摆脱变量:
$("<div />", {
id:"flashMsg",
class: className,
html:msg
})
.prependTo(bazingaApp.app.rightPanel)
.fadeIn("slow",function(){
$(this).delay(5000).slideUp(1000, function () {
$(this).remove();
});
});