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