Javascript能够从HTML页面卸载图像吗?

时间:2012-03-11 09:32:56

标签: javascript html image

我想知道是否可以从HTML页面卸载图像并使用一些Javascript指令释放其内存占用。假设图像已经显示在屏幕上。假设我需要卸载它以节省内存(原因与此无关)。我可以用Javascript做到吗?

3 个答案:

答案 0 :(得分:7)

对您的问题的评论是正确的,您可以将其从DOM中删除,但是当浏览器确定它是好的并准备好时,浏览器将从内存中清除它。

要从DOM中清除它,您可以执行以下操作:

var badImage = document.querySelector("img#idOfImage"); 
//or "img[href='nameofimagefile.jpeg']" 
//whatever you need to do to get the right element
//then, remove it:

badImage.parentElement.removeChild(badImage);

答案 1 :(得分:3)

$('#myDiv').remove();

function removeElement(divNum) {
    var d = document.getElementById('myDiv');
    var olddiv = document.getElementById(divNum);
    d.removeChild(olddiv);
}

会从DOM中删除它但是它不会释放任何内存,带宽或http请求......所以性能方面它不会产生太大的影响(不考虑渲染)。

但是我相信如果图像从DOM中删除,它使用的内存最终将被浏览器管理和删除(垃圾收集)。

所以简而言之,我不认为有一种特定的方法可以将其从内存中删除,因为这是一个浏览器级别的问题。

答案 2 :(得分:0)

通过将src属性分配给1x1像素,然后再将其删除,可以释放img元素的内存。

const imgElement = document.querySelector(selector);
imgElement.setAttribute('src', '/images/pixel.gif');
imgElement.parentElement.removeChild(imgElement);