Javascript может выгрузить изображение со страницы HTML? - PullRequest
6 голосов
/ 11 марта 2012

Я хотел бы знать, возможно ли выгрузить изображение со страницы HTML и освободить его память, используя некоторые инструкции Javascript. Скажем, изображение уже отображается на экране. Скажем, мне нужно выгрузить его, чтобы сохранить память (причина здесь не актуальна). Могу ли я сделать это с помощью Javascript?

Ответы [ 3 ]

8 голосов
/ 11 марта 2012

Комментарии к вашему вопросу верны, вы можете удалить его из 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);
3 голосов
/ 11 марта 2012
$('#myDiv').remove();

или

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

Удалит его из DOM, однако он не освободит память, пропускную способность или запросы http ... поэтому с точки зрения производительности это не будет иметь большого значения (без учета рендеринга).

Однако я считаю, что если изображение удаляется из DOM, используемая им память в конечном итоге будет управляться и удаляться браузером (сборщик мусора).

Короче говоря, нет, я не думаю, что есть определенный способ удалить его из памяти, потому что это проблема уровня браузера.

0 голосов
/ 19 марта 2019

Вы можете освободить память элемента img, назначив атрибут src пикселю 1x1 перед его удалением.

const imgElement = document.querySelector(selector);
imgElement.setAttribute('src', '/images/pixel.gif');
imgElement.parentElement.removeChild(imgElement);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...