我认为描述我的问题的最好方法是在这样的情况下创建一些图像对象:
<div id="image_collection">
<div class="image" data-src="http://image1.jpg"></div>
<div class="image" data-src="http://image2.jpg"></div>
</div>
在我的 JavaScript 中,我可以有以下内容:
$('.image').each(function( index, element ){
var image = new Image(); //NEW INSTANCE(S) CREATED (IN MEMORY)
image.src = $(this).attr('data-src');
$(this).parent().append(image);
});
请记住,这是我真实脚本中的一个示例 new Image()
是一个自定义对象。
这个脚本是自动完成的,所以我把 <div class="image" data-src="http://image1.jpg"></div>
放在哪里将创建一个图像。现在一些程序员使用这个脚本并导入它并使用以下代码创建自己的脚本:
$('#image_collection').remove(); //OR
$('#image_collection').html('Some new content');
现在我的脚本首先触发,它将转换所有图像,创建新实例,但是当程序员删除 image_collection 中的节点时,我相信这些图像实例仍将保留在内存中。一旦 DOM 中不再使用这些图像实例,如何删除它们?
最佳答案
.remove()
函数从 DOM 中删除节点并返回它们。如果您不对返回值执行任何操作,它们最终会被清除。
关于JavaScript : How to detect if a node has been removed?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10580707/