我是否应该在视口之外删除元素?

时间:2015-07-30 01:10:39

标签: javascript performance animation svg

我是否应该使用jQuery(或纯JS,如果速度更快)动态删除元素,当它从视口转换出来并且不会再次输入时?这会改善内存使用或性能吗?或者我应该忽略它被垃圾收集器删除,因为它做得最好(如果它本质上是这样做的)?

编辑:为了更清楚,这是一个实际的解释:

假设我有100个圈子,他们的translateX动画:

$("circle").each(function(i, el){
    $(el).animate({translateX: -100});
});

现在所有圆圈都在视口外(因为SVG的坐标系从左上角0,0开始)。我的代码是否应该删除,如下所示:

$("circle").each(function(i, el){
    $(el).animate({translateX: -100}, {complete: function()
    $(el).remove();
});
});

...

1 个答案:

答案 0 :(得分:0)

绝对是的!

垃圾收集器在幕后工作,以处理释放不再使用的对象的内存。但除非你以某种方式放手(即告诉运行时系统你不再需要它),垃圾收集器只会在执行结束时处理它!

这是一个非常好的高级语言(例如,javascript)开发人员的内存管理指南。 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Memory_Management