我是否应该使用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();
});
});
...
答案 0 :(得分:0)
绝对是的!
垃圾收集器在幕后工作,以处理释放不再使用的对象的内存。但除非你以某种方式放手(即告诉运行时系统你不再需要它),垃圾收集器只会在执行结束时处理它!
这是一个非常好的高级语言(例如,javascript)开发人员的内存管理指南。 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Memory_Management